شركة التطبيقات المتكاملة لتصميم النظم البرمجية الخاصة ش.ش.و.

Integrated Applications Programming Company

Skip Navigation LinksHome » Code Library » Transaction

Public general use code classes and xml files that we've compiled and used over the years:

Transaction Entity Framework class for Optical Fiber Network (OFN) entity model.

   1:  using System;
   2:  using System.Collections.Generic;
   3:  using System.Data;
   4:  using System.Linq;
   5:  using System.ComponentModel.DataAnnotations.Schema;
   6:  using System.Threading;
   7:  using System.Threading.Tasks;
   8:   
   9:  namespace Ia.Ngn.Cl.Model
  10:  {
  11:      ////////////////////////////////////////////////////////////////////////////
  12:   
  13:      /// <summary publish="true">
  14:      /// Transaction Entity Framework class for Optical Fiber Network (OFN) entity model.
  15:      /// </summary>
  16:      /// 
  17:      /// <remarks> 
  18:      /// Copyright © 2006-2021 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
  19:      ///
  20:      /// This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
  21:      /// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
  22:      ///
  23:      /// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
  24:      /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
  25:      /// 
  26:      /// You should have received a copy of the GNU General Public License along with this library. If not, see http://www.gnu.org/licenses.
  27:      /// 
  28:      /// Copyright notice: This notice may not be removed or altered from any source distribution.
  29:      /// </remarks> 
  30:      public class Transaction
  31:      {
  32:          ////////////////////////////////////////////////////////////////////////////
  33:   
  34:          /// <summary>
  35:          ///
  36:          /// </summary>
  37:          public Transaction() { }
  38:   
  39:          /// <summary/>
  40:          public int Id { get; set; }
  41:   
  42:          /// <summary/>
  43:          public int TypeId { get; set; }
  44:   
  45:          /// <summary/>
  46:          public int StateId { get; set; }
  47:   
  48:          /// <summary/>
  49:          public int PriorityId { get; set; }
  50:   
  51:          /// <summary/>
  52:          public int RecipientId { get; set; }
  53:   
  54:          /// <summary/>
  55:          public int NumberOfTimesMessageSent { get; set; }
  56:   
  57:          /// <summary/>
  58:          public bool Closed { get; set; }
  59:   
  60:          /// <summary/>
  61:          public string Message { get; set; }
  62:   
  63:          /// <summary/>
  64:          public DateTime? MessageSent { get; set; }
  65:   
  66:          /// <summary/>
  67:          public string Response { get; set; }
  68:   
  69:          /// <summary/>
  70:          public DateTime? ResponseReceived { get; set; }
  71:   
  72:          /// <summary/>
  73:          public DateTime Created { get; set; }
  74:   
  75:          /// <summary/>
  76:          public DateTime Updated { get; set; }
  77:   
  78:          /// <summary/>
  79:          public System.Guid UserId { get; set; }
  80:   
  81:          ////////////////////////////////////////////////////////////////////////////    
  82:          ////////////////////////////////////////////////////////////////////////////    
  83:   
  84:          /// <summary>
  85:          ///
  86:          /// </summary>
  87:          public static bool Create(Transaction newItem, out int itemId)
  88:          {
  89:              bool b;
  90:   
  91:              b = false;
  92:   
  93:              using (var db = new Ia.Ngn.Cl.Model.Ngn())
  94:              {
  95:                  newItem.Created = newItem.Updated = DateTime.UtcNow.AddHours(3);
  96:   
  97:                  db.Transactions.Add(newItem);
  98:                  db.SaveChanges();
  99:   
 100:                  itemId = newItem.Id;
 101:   
 102:                  b = true;
 103:              }
 104:   
 105:              return b;
 106:          }
 107:   
 108:          ////////////////////////////////////////////////////////////////////////////
 109:   
 110:          /// <summary>
 111:          ///
 112:          /// </summary>
 113:          public static Transaction Read(int id)
 114:          {
 115:              Transaction item;
 116:   
 117:              using (var db = new Ia.Ngn.Cl.Model.Ngn())
 118:              {
 119:                  item = (from t in db.Transactions where t.Id == id select t).SingleOrDefault();
 120:              }
 121:   
 122:              return item;
 123:          }
 124:   
 125:          ////////////////////////////////////////////////////////////////////////////
 126:   
 127:          /// <summary>
 128:          ///
 129:          /// </summary>
 130:          public static List<Transaction> ReadList()
 131:          {
 132:              List<Transaction> itemList;
 133:   
 134:              using (var db = new Ia.Ngn.Cl.Model.Ngn())
 135:              {
 136:                  itemList = (from t in db.Transactions select t).ToList();
 137:              }
 138:   
 139:              return itemList;
 140:          }
 141:   
 142:          ////////////////////////////////////////////////////////////////////////////
 143:   
 144:          /// <summary>
 145:          ///
 146:          /// </summary>
 147:          public static bool Update(Transaction updatedItem, out string result)
 148:          {
 149:              bool b;
 150:   
 151:              b = false;
 152:              result = string.Empty;
 153:   
 154:              using (var db = new Ia.Ngn.Cl.Model.Ngn())
 155:              {
 156:                  updatedItem = (from t in db.Transactions where t.Id == updatedItem.Id select t).SingleOrDefault();
 157:   
 158:                  updatedItem.Updated = DateTime.UtcNow.AddHours(3);
 159:   
 160:                  db.Transactions.Attach(updatedItem);
 161:   
 162:                  var v = db.Entry(updatedItem);
 163:                  v.State = Microsoft.EntityFrameworkCore.EntityState.Modified;
 164:                  db.SaveChanges();
 165:   
 166:                  b = true;
 167:              }
 168:   
 169:              return b;
 170:          }
 171:   
 172:          ////////////////////////////////////////////////////////////////////////////
 173:   
 174:          /// <summary>
 175:          ///
 176:          /// </summary>
 177:          public bool Update(Transaction transactionOnt)
 178:          {
 179:              // below: this will not update Id, Created
 180:              bool updated;
 181:   
 182:              updated = false;
 183:   
 184:              if (this.Closed != transactionOnt.Closed) { this.Closed = transactionOnt.Closed; updated = true; }
 185:              else if (this.Message != transactionOnt.Message) { this.Message = transactionOnt.Message; updated = true; }
 186:              else if (this.MessageSent != transactionOnt.MessageSent) { this.MessageSent = transactionOnt.MessageSent; updated = true; }
 187:              else if (this.NumberOfTimesMessageSent != transactionOnt.NumberOfTimesMessageSent) { this.NumberOfTimesMessageSent = transactionOnt.NumberOfTimesMessageSent; updated = true; }
 188:              else if (this.PriorityId != transactionOnt.PriorityId) { this.PriorityId = transactionOnt.PriorityId; updated = true; }
 189:              else if (this.RecipientId != transactionOnt.RecipientId) { this.RecipientId = transactionOnt.RecipientId; updated = true; }
 190:              else if (this.Response != transactionOnt.Response) { this.Response = transactionOnt.Response; updated = true; }
 191:              else if (this.ResponseReceived != transactionOnt.ResponseReceived) { this.ResponseReceived = transactionOnt.ResponseReceived; updated = true; }
 192:              else if (this.StateId != transactionOnt.StateId) { this.StateId = transactionOnt.StateId; updated = true; }
 193:              else if (this.TypeId != transactionOnt.TypeId) { this.TypeId = transactionOnt.TypeId; updated = true; }
 194:              else if (this.UserId != transactionOnt.UserId) { this.UserId = transactionOnt.UserId; updated = true; }
 195:   
 196:              if (updated) this.Updated = DateTime.UtcNow.AddHours(3);
 197:   
 198:              return updated;
 199:          }
 200:   
 201:          ////////////////////////////////////////////////////////////////////////////
 202:   
 203:          /// <summary>
 204:          ///
 205:          /// </summary>
 206:          public static bool Delete(int id, out string result)
 207:          {
 208:              bool b;
 209:   
 210:              b = false;
 211:              result = string.Empty;
 212:   
 213:              using (var db = new Ia.Ngn.Cl.Model.Ngn())
 214:              {
 215:                  var v = (from t in db.Transactions where t.Id == id select t).FirstOrDefault();
 216:   
 217:                  db.Transactions.Remove(v);
 218:                  db.SaveChanges();
 219:   
 220:                  b = true;
 221:              }
 222:   
 223:              return b;
 224:          }
 225:   
 226:          ////////////////////////////////////////////////////////////////////////////
 227:          ////////////////////////////////////////////////////////////////////////////
 228:      }
 229:   
 230:      ////////////////////////////////////////////////////////////////////////////
 231:      ////////////////////////////////////////////////////////////////////////////   
 232:  }