public bool UpdateStatus(DeviceRegistration o, params System.Linq.Expressions.Expression <Func <DeviceRegistration, object> >[] properties) { var item = db.DeviceRegistrations.Where(i => i.ID == o.ID || i.OrderCode == o.OrderCode).SingleOrDefault(); if (item != null) { foreach (var propertie in properties) { var lambda = (LambdaExpression)propertie; MemberExpression memberExpression; if (lambda.Body is UnaryExpression) { memberExpression = (MemberExpression)((UnaryExpression)lambda.Body).Operand; } else { memberExpression = (MemberExpression)lambda.Body; } string propertyName = memberExpression.Member.Name; item.GetType().GetProperty(propertyName).SetValue(item, o.GetType().GetProperty(propertyName).GetValue(o)); } db.SaveChanges(); } else { return(false); } return(true); }
/// <summary> /// /// </summary> /// <param name="sItemID"></param> /// <returns></returns> public bool DeleteItem(string sItemID) { DeviceRegistration item = db.DeviceRegistrations.Where(i => i.ID == sItemID).SingleOrDefault(); if (item != null) { if (item.Status == (int)OrderStatus.CHECKED || item.Status == (int)OrderStatus.SENDING || item.Status == (int)OrderStatus.FINSHED) { return(false); } // Hidden List of Sign if (item.Status == (int)OrderStatus.RETURNED) { WFMainDetail wfDtail = db.WFMainDetails.Where(i => i.WFMain.OrderCode == item.OrderCode && i.isFinished == 0 && i.NodeID == "").SingleOrDefault(); if (wfDtail != null) { wfDtail.isFinished = 1; wfDtail.CheckDate = DateTime.Now; } } item.Status = (int)OrderStatus.DELETED; db.SaveChanges(); return(true); } return(false); }
/// <summary> /// Insert Item: /// DeviceRegistration /// if OrderStatus was Save end Send then Insert WFMain to DB /// </summary> /// <param name="o"></param> /// <returns></returns> public string InsertItem(DeviceRegistration o, OrderStatus status, WFMain w) { using (TransactionScope transaction = new TransactionScope()) { try { if (o.ID.Length == 0 || o.ID == null) { o.ID = Guid.NewGuid().ToString(); } if (o.Description == null) { o.Description = ""; } if (o.Reason == null) { o.Reason = ""; } if (o.DeviceRegistrationDetails != null) { foreach (DeviceRegistrationDetail i in o.DeviceRegistrationDetails) { i.ID = Guid.NewGuid().ToString(); i.DeviceRegistrationID = o.ID; i.Temp1 = ""; } } db.DeviceRegistrations.Add(o); // Check for sending? if (status == OrderStatus.SENDING) { db.WFMains.Add(w); } db.SaveChanges(); transaction.Complete(); return(o.ID); } catch (Exception) { transaction.Dispose(); } } return(""); }
/// <summary> /// Update Item /// </summary> /// <param name="o">DeviceRegistration to Update</param> /// <param name="status">OrderStatus</param> /// <param name="w">WFMainDetail</param> /// <param name="properties"></param> /// <returns></returns> public bool UpdateItem(DeviceRegistration o, Boolean isSaveDraff, Boolean isReturned, WFMainDetail w, params System.Linq.Expressions.Expression <Func <DeviceRegistration, object> >[] properties) { if (o.Description == null) { o.Description = ""; } if (o.Reason == null) { o.Reason = ""; } using (TransactionScope transaction = new TransactionScope()) { try { DeviceRegistration item = db.DeviceRegistrations.Where(i => i.ID == o.ID || i.OrderCode == o.OrderCode).SingleOrDefault(); if (item != null) { foreach (var propertie in properties) { var lambda = (LambdaExpression)propertie; MemberExpression memberExpression; if (lambda.Body is UnaryExpression) { memberExpression = (MemberExpression)((UnaryExpression)lambda.Body).Operand; } else { memberExpression = (MemberExpression)lambda.Body; } string propertyName = memberExpression.Member.Name; item.GetType().GetProperty(propertyName).SetValue(item, o.GetType().GetProperty(propertyName).GetValue(o)); } if (!isSaveDraff) { item.Status = (int)DeviceRegistrationManager.OrderStatus.SENDING; } // Update DeviceRegistrationDetail } // Xóa Device Registration Detail List <DeviceRegistrationDetail> lstDeviceDetail = db.DeviceRegistrationDetails.Where(i => i.DeviceRegistrationID == item.ID).ToList(); if (lstDeviceDetail.Count > 0) { foreach (DeviceRegistrationDetail i in lstDeviceDetail) { db.DeviceRegistrationDetails.Remove(i); } } //Add DeviceRegistrationDetails if (o.DeviceRegistrationDetails != null) { foreach (DeviceRegistrationDetail i in o.DeviceRegistrationDetails) { i.ID = Guid.NewGuid().ToString(); i.DeviceRegistrationID = o.ID; db.DeviceRegistrationDetails.Add(i); } } if (!isSaveDraff) { if (isReturned) { WFMainDetail wfDtail = db.WFMainDetails.Where(i => i.WFMain.OrderCode == o.OrderCode && i.isFinished == 0 && i.NodeID == "").SingleOrDefault(); if (wfDtail != null) { wfDtail.isFinished = 1; wfDtail.CheckDate = DateTime.Now; } } db.WFMainDetails.Add(w); } db.SaveChanges(); transaction.Complete(); return(true); } catch { transaction.Dispose(); return(false); } } }