public object UpdateData(int userID, Hashtable filters, out Notification notification) { notification = new Notification(); notification.Type = NotificationType.Success; DTO.EditFormData data = new DTO.EditFormData(); data.EditData = new DTO.QualityInspectionData(); data.SearchData = new List <DTO.QualityInspectionSearchResultData>(); var dtoItem = ((Newtonsoft.Json.Linq.JObject)filters["dataView"]).ToObject <DTO.QualityInspectionData>(); try { using (var context = CreateContext()) { QualityInspection dbItem; if (dtoItem.QualityInspectionID == 0) { dbItem = new QualityInspection(); context.QualityInspection.Add(dbItem); } else { dbItem = context.QualityInspection.FirstOrDefault(o => o.QualityInspectionID == dtoItem.QualityInspectionID); } if (dbItem == null) { notification.Type = NotificationType.Error; notification.Message = "Can not find Quality Inspection"; return(GetData(filters, out notification)); } converter.DTO2DB_QualityInspection(dtoItem, ref dbItem, FrameworkSetting.Setting.AbsoluteUserTempFolder + userID.ToString() + @"\", userID); context.SaveChanges(); filters["id"] = 0; filters["workOrderID"] = dbItem.WorkOrderID; filters["clientID"] = dbItem.ClientID; filters["productionItemID"] = dbItem.ProductionItemID; GetData(filters, ref data, ref notification); } } catch (Exception ex) { notification.Type = NotificationType.Error; notification.Message = Helper.GetInnerException(ex).Message; } return(data); }
public void DTO2DB_QualityInspection(DTO.QualityInspectionData dtoItem, ref QualityInspection dbItem, string templateFile, int userID) { Mapper.Map <DTO.QualityInspectionData, QualityInspection>(dtoItem, dbItem); dbItem.WorkCenterWorkingDate = dtoItem.WorkCenterWorkingDate.ConvertStringToDateTime(); dbItem.InspectionDate = dtoItem.InspectionDate.ConvertStringToDateTime(); dbItem.ReceivedDate = dtoItem.ReceivedDate.ConvertStringToDateTime(); foreach (var dbItemCategory in dbItem.QualityInspectionCategory.ToArray()) { if (!dtoItem.QualityInspectionCategories.Select(o => o.QualityInspectionCategoryID).Contains(dbItemCategory.QualityInspectionCategoryID)) { foreach (var dbItemCategoryImage in dbItemCategory.QualityInspectionCategoryImage.ToArray()) { if (!string.IsNullOrEmpty(dbItemCategoryImage.FileUD)) { fwFactory.RemoveImageFile(dbItemCategoryImage.FileUD); } dbItemCategory.QualityInspectionCategoryImage.Remove(dbItemCategoryImage); } dbItem.QualityInspectionCategory.Remove(dbItemCategory); } } foreach (var dtoItemCategory in dtoItem.QualityInspectionCategories) { QualityInspectionCategory dbItemCategory; if (dtoItemCategory.QualityInspectionCategoryID < 0) { dbItemCategory = new QualityInspectionCategory(); dbItem.QualityInspectionCategory.Add(dbItemCategory); } else { dbItemCategory = dbItem.QualityInspectionCategory.FirstOrDefault(o => o.QualityInspectionCategoryID == dtoItemCategory.QualityInspectionCategoryID); } if (dbItemCategory != null) { Mapper.Map <DTO.QualityInspectionCategoryData, QualityInspectionCategory>(dtoItemCategory, dbItemCategory); foreach (var dbItemCategoryImage in dbItemCategory.QualityInspectionCategoryImage.ToArray()) { if (!dtoItemCategory.QualityInpsectionCategoryImages.Select(s => s.QualityInspectionCategoryImageID).Contains(dbItemCategoryImage.QualityInspectionCategoryImageID)) { if (!string.IsNullOrEmpty(dbItemCategoryImage.FileUD)) { fwFactory.RemoveImageFile(dbItemCategoryImage.FileUD); } dbItemCategory.QualityInspectionCategoryImage.Remove(dbItemCategoryImage); } } foreach (var dtoItemCategoryImage in dtoItemCategory.QualityInpsectionCategoryImages) { QualityInspectionCategoryImage dbItemCategoryImage; if (dtoItemCategoryImage.QualityInspectionCategoryImageID < 0) { dbItemCategoryImage = new QualityInspectionCategoryImage(); dbItemCategory.QualityInspectionCategoryImage.Add(dbItemCategoryImage); } else { dbItemCategoryImage = dbItemCategory.QualityInspectionCategoryImage.FirstOrDefault(o => o.QualityInspectionCategoryImageID == dtoItemCategoryImage.QualityInspectionCategoryImageID); } if (dbItemCategoryImage != null) { Mapper.Map <DTO.QualityInspectionCategoryImageData, QualityInspectionCategoryImage>(dtoItemCategoryImage, dbItemCategoryImage); if (dtoItemCategoryImage.HasChange.HasValue && dtoItemCategoryImage.HasChange.Value) { dbItemCategoryImage.FileUD = fwFactory.CreateFilePointer(templateFile, dtoItemCategoryImage.NewFile, dtoItemCategoryImage.FileUD, dtoItemCategoryImage.FriendlyName); } } } } } }