public Guid Add(Customer entity) { if (string.IsNullOrEmpty(entity.SSN)) throw new ArgumentException("Customer number cannot be empty!"); if (string.IsNullOrEmpty(entity.ContactDetail.ContactName)) throw new ArgumentException("Customer name cannot be empty!"); using (OpenPOSDbEntities ctx = new OpenPOSDbEntities()) { if (CheckDuplicate(entity.Id, entity.SSN, ctx)) { throw new ArgumentException("Duplicate Customer number found!"); } try { ctx.Customers.AddObject(entity); ctx.SaveChanges(); return entity.Id; } catch (Exception ex) { LogService.Error("Error while adding customer", ex); throw new ArgumentException("Error while adding new customer!"); } } }
public void Delete(Guid id) { if (id.Equals(Guid.Empty)) throw new ArgumentException("Employee id cannot be empty!"); try { using (OpenPOSDbEntities ctx = new OpenPOSDbEntities()) { var entity = GetEmployeeById(id); if (entity != null) { ctx.Employees.Attach(entity); ctx.Employees.DeleteObject(entity); ctx.SaveChanges(); } } } catch (Exception ex) { LogService.Error("Error while deleting Employee", ex); throw ex; } }
public Guid Add(Order entity) { if (entity.BillNo <= 0) throw new ArgumentException("Order No cannot be empty!"); if (entity.CustomerId == Guid.Empty) throw new ArgumentException("Order Customer cannot be empty!"); if (entity.EmployeeId == Guid.Empty) throw new ArgumentException("Order Employee cannot be empty!"); if (CheckDuplicateBillNo(entity.Id, entity.BillNo)) throw new ArgumentException("Duplicate Order No found!"); using (OpenPOSDbEntities ctx = new OpenPOSDbEntities()) { try { ctx.Orders.MergeOption = MergeOption.NoTracking; ctx.Orders.AddObject(entity); ctx.SaveChanges(); var id = entity.Id; ctx.Detach(entity); return id; } catch (Exception ex) { LogService.Error("Error while adding order", ex); throw new ArgumentException("Error while adding new order!", ex); } } }
public Guid Add(Purchase entity) { if (string.IsNullOrEmpty(entity.BillNo)) throw new ArgumentException("Purchase No cannot be empty!"); if (entity.SupplierId == Guid.Empty) throw new ArgumentException("Purchase supplier cannot be empty!"); if (entity.EmployeeId == Guid.Empty) throw new ArgumentException("Purchase Employee cannot be empty!"); if (CheckDuplicateBillNo(entity.Id, entity.BillNo)) throw new ArgumentException("Duplicate Purchase No found!"); using (OpenPOSDbEntities ctx = new OpenPOSDbEntities()) { try { ctx.Purchases.MergeOption = MergeOption.NoTracking; ctx.Purchases.AddObject(entity); ctx.SaveChanges(); var id = entity.Id; ctx.Detach(entity); return id; } catch (Exception ex) { LogService.Error("Error while adding Purchase", ex); throw new ArgumentException("Error while adding new Purchase!", ex); } } }
public Guid Add(Setting entity) { using (var ctx = new OpenPOSDbEntities()) { ctx.Settings.AddObject(entity); ctx.SaveChanges(); return entity.Id; } }
public Guid Add(Employee entity) { using (OpenPOSDbEntities ctx = new OpenPOSDbEntities()) { try { ctx.Employees.AddObject(entity); ctx.SaveChanges(); return entity.Id; } catch (Exception ex) { LogService.Error("Error while adding Employee", ex); throw new ArgumentException("Error while adding new Employee!"); } } }
public Guid Add(Product entity) { if (string.IsNullOrEmpty(entity.Barcode)) throw new ArgumentException("Product barcode cannot be empty!"); if (string.IsNullOrEmpty(entity.Name)) throw new ArgumentException("Product name cannot be empty!"); using (OpenPOSDbEntities ctx = new OpenPOSDbEntities()) { try { entity.Status = true; ctx.Products.AddObject(entity); ctx.SaveChanges(); return entity.Id; } catch (Exception ex) { LogService.Error("Error while adding product", ex); throw new ArgumentException("Error while adding new product!"); } } }
public void Update(Setting entity) { using (OpenPOSDbEntities ctx = new OpenPOSDbEntities()) { try { ctx.Settings.Attach(entity); ctx.ObjectStateManager.ChangeObjectState(entity, System.Data.EntityState.Modified); ctx.Settings.ApplyCurrentValues(entity); ctx.SaveChanges(); } catch (Exception ex) { LogService.Error("Error while updating settings", ex); throw ex; } } }
public void Update(Employee entity) { if (entity.Id.Equals(Guid.Empty)) throw new ArgumentException("Employee Id cannot be empty!"); using (OpenPOSDbEntities ctx = new OpenPOSDbEntities()) { try { ctx.Employees.Attach(entity); ctx.ObjectStateManager.ChangeObjectState(entity, System.Data.EntityState.Modified); ctx.Employees.ApplyCurrentValues(entity); ctx.SaveChanges(); } catch (Exception ex) { LogService.Error("Error while updating Employee", ex); throw ex; } } }
public void Update(Order entity) { if (entity.Id.Equals(Guid.Empty)) throw new ArgumentException("Order Id cannot be empty!"); if (entity.BillNo <= 0) throw new ArgumentException("Order No cannot be empty!"); if (entity.CustomerId == Guid.Empty) throw new ArgumentException("Order Customer cannot be empty!"); if (entity.EmployeeId == Guid.Empty) throw new ArgumentException("Order Employee cannot be empty!"); if (CheckDuplicateBillNo(entity.Id, entity.BillNo)) throw new ArgumentException("Duplicate Order No found!"); using (OpenPOSDbEntities ctx = new OpenPOSDbEntities()) { try { using (var scope = new TransactionScope(TransactionScopeOption.Required)) { ctx.ExecuteStoreCommand("DELETE FROM OrderDetails WHERE OrderId = {0};", entity.Id); ctx.ExecuteStoreCommand("DELETE FROM Payments WHERE OrderId = {0};", entity.Id); foreach (var od in entity.OrderDetails) { ctx.AttachTo("OrderDetails", od); ctx.ObjectStateManager.ChangeObjectState(od, System.Data.EntityState.Added); } foreach (var payment in entity.Payments) { ctx.AttachTo("Payments", payment); ctx.ObjectStateManager.ChangeObjectState(payment, System.Data.EntityState.Added); } ctx.AttachTo("Orders", entity); ctx.ObjectStateManager.ChangeObjectState(entity, System.Data.EntityState.Modified); ctx.SaveChanges(); scope.Complete(); } } catch (Exception ex) { LogService.Error("Error while updating order", ex); throw new ArgumentException("Error while updating order!", ex); } } }
public void Update(Customer entity) { if (entity.Id.Equals(Guid.Empty)) throw new ArgumentException("Customer Id cannot be empty!"); if (string.IsNullOrEmpty(entity.SSN)) throw new ArgumentException("Customer number cannot be empty!"); if (string.IsNullOrEmpty(entity.ContactDetail.ContactName)) throw new ArgumentException("Customer name cannot be empty!"); using (OpenPOSDbEntities ctx = new OpenPOSDbEntities()) { if (CheckDuplicate(entity.Id, entity.SSN, ctx)) { throw new ArgumentException("Duplicate Customer number found!"); } try { ctx.Customers.Attach(entity); ctx.ContactDetails.Attach(entity.ContactDetail); ctx.ObjectStateManager.ChangeObjectState(entity, System.Data.EntityState.Modified); ctx.ObjectStateManager.ChangeObjectState(entity.ContactDetail, System.Data.EntityState.Modified); ctx.Customers.ApplyCurrentValues(entity); ctx.ContactDetails.ApplyCurrentValues(entity.ContactDetail); ctx.SaveChanges(); } catch (Exception ex) { LogService.Error("Error while updating customer", ex); } } }
public void Update(Purchase entity) { if (entity == null) throw new ArgumentNullException("entity"); if (string.IsNullOrEmpty(entity.BillNo)) throw new ArgumentException("Purchase No cannot be empty!"); if (entity.SupplierId == Guid.Empty) throw new ArgumentException("Purchase supplier cannot be empty!"); if (entity.EmployeeId == Guid.Empty) throw new ArgumentException("Purchase Employee cannot be empty!"); if (CheckDuplicateBillNo(entity.Id, entity.BillNo)) throw new ArgumentException("Duplicate Purchase No found!"); try { using (OpenPOSDbEntities ctx = new OpenPOSDbEntities()) { using (var scope = new TransactionScope(TransactionScopeOption.Required)) { ctx.ExecuteStoreCommand("DELETE FROM PurchaseDetails WHERE PurchaseId = {0};", entity.Id); ctx.ExecuteStoreCommand("DELETE FROM PurchasePayments WHERE PurchaseId = {0};", entity.Id); foreach (var od in entity.PurchaseDetails) { ctx.AttachTo("PurchaseDetails", od); ctx.ObjectStateManager.ChangeObjectState(od, System.Data.EntityState.Added); } foreach (var payment in entity.PurchasePayments) { ctx.AttachTo("PurchasePayments", payment); ctx.ObjectStateManager.ChangeObjectState(payment, System.Data.EntityState.Added); } ctx.AttachTo("Purchases", entity); ctx.ObjectStateManager.ChangeObjectState(entity, System.Data.EntityState.Modified); ctx.SaveChanges(); scope.Complete(); } } } catch (Exception ex) { LogService.Error("Error while updating Purchase", ex); throw new ArgumentException("Error while updating Purchase", ex); } }
public void Update(Product entity) { if (entity.Id.Equals(Guid.Empty)) throw new ArgumentException("Product Id cannot be empty!"); if (string.IsNullOrEmpty(entity.Barcode)) throw new ArgumentException("Product barcode cannot be empty!"); if (string.IsNullOrEmpty(entity.Name)) throw new ArgumentException("Product name cannot be empty!"); using (OpenPOSDbEntities ctx = new OpenPOSDbEntities()) { try { ctx.Products.Attach(entity); ctx.ObjectStateManager.ChangeObjectState(entity, System.Data.EntityState.Modified); ctx.Products.ApplyCurrentValues(entity); ctx.SaveChanges(); } catch (Exception ex) { LogService.Error("Error while updating product", ex); throw ex; } } }