Exemplo n.º 1
0
        public bool UpdateData(int userId, object dtoInputItems, out Library.DTO.Notification notification)
        {
            List <DTO.EstimatedPurchasingPriceSearchResultDTO> dtoItems = ((Newtonsoft.Json.Linq.JArray)dtoInputItems).ToObject <List <DTO.EstimatedPurchasingPriceSearchResultDTO> >();

            notification = new Library.DTO.Notification {
                Type = Library.DTO.NotificationType.Success
            };
            try
            {
                using (EstimatedPurchasingPriceMngEntities context = CreateContext())
                {
                    EstimatedPurchasingPrice        dbNewItem;
                    EstimatedPurchasingPriceHistory dbNewHistory;
                    foreach (DTO.EstimatedPurchasingPriceSearchResultDTO dtoItem in dtoItems.Where(o => o.EstimatedPurchasingPriceID <= 0).ToList())
                    {
                        dbNewItem = new EstimatedPurchasingPrice();
                        context.EstimatedPurchasingPrice.Add(dbNewItem);
                        converter.DTO2DB(dtoItem, ref dbNewItem);
                        dbNewItem.EstimatedPrice = dtoItem.NewEstimatedPrice;
                        dbNewItem.Remark         = dtoItem.NewRemark;
                        dbNewItem.UpdatedBy      = userId;
                        dbNewItem.UpdatedDate    = DateTime.Now;

                        // add history
                        dbNewHistory = new EstimatedPurchasingPriceHistory
                        {
                            EstimatedPrice = dtoItem.NewEstimatedPrice,
                            Remark         = dtoItem.NewRemark,
                            UpdatedBy      = userId,
                            UpdatedDate    = DateTime.Now
                        };
                        dbNewItem.EstimatedPurchasingPriceHistory.Add(dbNewHistory);
                    }

                    var toBeUpdatedDTOs   = dtoItems.Where(o => o.EstimatedPurchasingPriceID > 0 && (o.NewEstimatedPrice.HasValue || !string.IsNullOrEmpty(o.NewRemark))).ToList();
                    var toBeUpdatedDTOIDS = toBeUpdatedDTOs.Select(o => o.EstimatedPurchasingPriceID).ToList();
                    foreach (EstimatedPurchasingPrice dbItem in context.EstimatedPurchasingPrice.Where(o => toBeUpdatedDTOIDS.Contains(o.EstimatedPurchasingPriceID)).ToList())
                    {
                        dbItem.EstimatedPrice = toBeUpdatedDTOs.FirstOrDefault(o => o.EstimatedPurchasingPriceID == dbItem.EstimatedPurchasingPriceID).NewEstimatedPrice;
                        dbItem.Remark         = toBeUpdatedDTOs.FirstOrDefault(o => o.EstimatedPurchasingPriceID == dbItem.EstimatedPurchasingPriceID).NewRemark;
                        dbItem.UpdatedBy      = userId;
                        dbItem.UpdatedDate    = DateTime.Now;

                        // add history
                        dbNewHistory = new EstimatedPurchasingPriceHistory
                        {
                            EstimatedPrice = dbItem.EstimatedPrice,
                            Remark         = dbItem.Remark,
                            UpdatedBy      = userId,
                            UpdatedDate    = DateTime.Now
                        };
                        dbItem.EstimatedPurchasingPriceHistory.Add(dbNewHistory);
                    }

                    context.SaveChanges();
                    return(true);
                }
            }
            catch (Exception ex)
            {
                notification.Type    = Library.DTO.NotificationType.Error;
                notification.Message = Library.Helper.GetInnerException(ex).Message;
            }
            return(false);
        }
Exemplo n.º 2
0
 public void DTO2DB(DTO.EstimatedPurchasingPriceSearchResultDTO dtoItem, ref EstimatedPurchasingPrice dbItem)
 {
     AutoMapper.Mapper.Map <DTO.EstimatedPurchasingPriceSearchResultDTO, EstimatedPurchasingPrice>(dtoItem, dbItem);
 }