Example #1
0
 public void DTO2DB_DefaultCategory(DTO.ProductBreakDownDefaultCategoryPALData dtoItem, ref ProductBreakDownDefaultCategoryPAL dbItem)
 {
     AutoMapper.Mapper.Map <DTO.ProductBreakDownDefaultCategoryPALData, ProductBreakDownDefaultCategoryPAL>(dtoItem, dbItem);
 }
Example #2
0
        public object UpdateData(int userID, System.Collections.Hashtable filters, out Library.DTO.Notification notification)
        {
            notification      = new Library.DTO.Notification();
            notification.Type = Library.DTO.NotificationType.Success;

            int getTypeID = (filters.ContainsKey("getTypeSearch") && filters["getTypeSearch"] != null && !string.IsNullOrEmpty(filters["getTypeSearch"].ToString().Trim())) ? Convert.ToInt32(filters["getTypeSearch"].ToString().Trim()) : 0;

            DTO.EditFormData data = new DTO.EditFormData(getTypeID);

            try
            {
                using (var context = CreateContext())
                {
                    if (getTypeID == 1)
                    {
                        int id = (filters.ContainsKey("id") && filters["id"] != null && !string.IsNullOrEmpty(filters["id"].ToString().Trim())) ? Convert.ToInt32(filters["id"].ToString().Trim()) : 0;
                        DTO.ProductBreakDownDefaultCategoryPALData dtoItem = ((Newtonsoft.Json.Linq.JObject)filters["dataView"]).ToObject <DTO.ProductBreakDownDefaultCategoryPALData>();

                        ProductBreakDownDefaultCategoryPAL dbItem;

                        if (id == 0)
                        {
                            dbItem = new ProductBreakDownDefaultCategoryPAL();
                            context.ProductBreakDownDefaultCategoryPAL.Add(dbItem);
                        }
                        else
                        {
                            dbItem = context.ProductBreakDownDefaultCategoryPAL.FirstOrDefault(o => o.ProductBreakDownDefaultCategoryID == id);
                        }

                        if (dbItem == null)
                        {
                            notification.Type    = Library.DTO.NotificationType.Error;
                            notification.Message = "Can not found data!";

                            return(data);
                        }

                        converter.DTO2DB_DefaultCategory(dtoItem, ref dbItem);

                        if (id == 0)
                        {
                            dbItem.CreatedBy   = userID;
                            dbItem.CreatedDate = DateTime.Now;
                        }

                        dbItem.UpdatedBy   = userID;
                        dbItem.UpdatedDate = DateTime.Now;

                        context.SaveChanges();

                        filters["id"] = dbItem.ProductBreakDownDefaultCategoryID;

                        return(GetData(userID, filters, out notification));
                    }

                    if (getTypeID == 2)
                    {
                        int id = (filters.ContainsKey("id") && filters["id"] != null && !string.IsNullOrEmpty(filters["id"].ToString().Trim())) ? Convert.ToInt32(filters["id"].ToString().Trim()) : 0;
                        DTO.ProductBreakDownPALData dtoItem = ((Newtonsoft.Json.Linq.JObject)filters["dataView"]).ToObject <DTO.ProductBreakDownPALData>();

                        ProductBreakDownPAL dbItem;

                        if (id == 0)
                        {
                            dbItem = new ProductBreakDownPAL();
                            context.ProductBreakDownPAL.Add(dbItem);
                        }
                        else
                        {
                            dbItem = context.ProductBreakDownPAL.FirstOrDefault(o => o.ProductBreakDownID == id);
                        }

                        if (dbItem == null)
                        {
                            notification.Type    = Library.DTO.NotificationType.Error;
                            notification.Message = "Can not find data";
                            return(null);
                        }

                        //convert data
                        converter.DTO2DB_ProductBreakDownPAL2(dtoItem, ref dbItem, FrameworkSetting.Setting.AbsoluteUserTempFolder + userID.ToString() + @"\", userID);

                        //create product for model default option
                        var modelDefaultOption = dtoItem.ModelDefaultOption;
                        if (modelDefaultOption != null)
                        {
                            if (!modelDefaultOption.ProductID.HasValue) //create product incase not exist
                            {
                                if (!modelDefaultOption.ArticleCode.Contains("*"))
                                {
                                    Product dbProduct = new Product();
                                    context.Product.Add(dbProduct);
                                    dbItem.Product = dbProduct;

                                    dbProduct.ArticleCode          = modelDefaultOption.ArticleCode;
                                    dbProduct.Description          = modelDefaultOption.Description;
                                    dbProduct.ModelID              = modelDefaultOption.ModelID;
                                    dbProduct.FrameMaterialID      = modelDefaultOption.FrameMaterialID;
                                    dbProduct.FrameMaterialColorID = modelDefaultOption.FrameMaterialColorID;
                                    dbProduct.MaterialID           = modelDefaultOption.MaterialID;
                                    dbProduct.MaterialTypeID       = modelDefaultOption.MaterialTypeID;
                                    dbProduct.MaterialColorID      = modelDefaultOption.MaterialColorID;
                                    dbProduct.SubMaterialID        = modelDefaultOption.SubMaterialID;
                                    dbProduct.SubMaterialColorID   = modelDefaultOption.SubMaterialColorID;
                                    dbProduct.SeatCushionID        = modelDefaultOption.SeatCushionID;
                                    dbProduct.BackCushionID        = modelDefaultOption.BackCushionID;
                                    dbProduct.CushionColorID       = modelDefaultOption.CushionColorID;
                                    dbProduct.FSCTypeID            = modelDefaultOption.FSCTypeID;
                                    dbProduct.FSCPercentID         = modelDefaultOption.FSCPercentID;
                                }
                            }
                            else
                            {
                                dbItem.ProductID = modelDefaultOption.ProductID;
                            }
                        }

                        //tracking value
                        dbItem.UpdatedBy   = userID;
                        dbItem.UpdatedDate = DateTime.Now;
                        context.ProductBreakDownDetailPAL.Local.Where(o => o.ProductBreakDownCategoryTypePAL == null).ToList().ForEach(o => context.ProductBreakDownDetailPAL.Remove(o));
                        context.ProductBreakDownCategoryTypePAL.Local.Where(o => o.ProductBreakDownCategoryPAL == null).ToList().ForEach(o => context.ProductBreakDownCategoryTypePAL.Remove(o));
                        context.ProductBreakDownCategoryImagePAL.Local.Where(o => o.ProductBreakDownCategoryPAL == null).ToList().ForEach(o => context.ProductBreakDownCategoryImagePAL.Remove(o));
                        context.ProductBreakDownCategoryPAL.Local.Where(o => o.ProductBreakDownPAL == null).ToList().ForEach(o => context.ProductBreakDownCategoryPAL.Remove(o));

                        //save data
                        context.SaveChanges();

                        //reload data
                        filters["id"] = dbItem.ProductBreakDownID;
                        return(GetData(userID, filters, out notification));
                    }
                }
            }
            catch (Exception ex)
            {
                notification.Type    = Library.DTO.NotificationType.Error;
                notification.Message = Library.Helper.GetInnerException(ex).Message;
            }

            return(data);
        }