예제 #1
0
        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);
        }
예제 #2
0
        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);
                            }
                        }
                    }
                }
            }
        }