示例#1
0
        public override bool UpdateData(int userId, int id, ref object dtoItem, out Notification notification)
        {
            DTO.TransportCostForwarder dtoEditItem = ((JObject)dtoItem).ToObject <DTO.TransportCostForwarder>();
            notification = new Notification {
                Type = NotificationType.Success
            };

            try
            {
                using (var context = CreateContext())
                {
                    TransportCostForwarder dbItem;

                    if (id > 0)
                    {
                        dbItem = context.TransportCostForwarder.FirstOrDefault(o => o.TransportCostForwarderID == id);
                    }
                    else
                    {
                        dbItem = new TransportCostForwarder();

                        context.TransportCostForwarder.Add(dbItem);

                        dbItem.CreatedBy   = userId;
                        dbItem.CreatedDate = DateTime.Now;
                    }

                    if (dbItem == null)
                    {
                        notification.Message = string.Format("TransportCostForwarder [id={0}] not found!", id);
                        return(false);
                    }

                    _converter.DTO2DB_TransportCostForwarder(dtoEditItem, ref dbItem);

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

                    // remove orphan items
                    context.TransportCostForwarderItem.Local.Where(o => o.TransportCostForwarder == null).ToList()
                    .ForEach(o => context.TransportCostForwarderItem.Remove(o));

                    context.SaveChanges();

                    dtoItem = GetData(userId, dbItem.TransportCostForwarderID, out notification).Data;

                    return(true);
                }
            }
            catch (Exception ex)
            {
                notification.Type    = NotificationType.Error;
                notification.Message = ex.Message;
                return(false);
            }
        }
示例#2
0
        public void DTO2DB_TransportCostForwarder(DTO.TransportCostForwarder dtoItem, ref TransportCostForwarder dbItem)
        {
            if (dtoItem.TransportCostForwarderItems != null)
            {
                foreach (var item in dbItem.TransportCostForwarderItem.ToArray())
                {
                    if (!dtoItem.TransportCostForwarderItems.Select(s => s.TransportCostForwarderItemID).Contains(item.TransportCostForwarderItemID))
                    {
                        dbItem.TransportCostForwarderItem.Remove(item);
                    }
                }

                foreach (var dto in dtoItem.TransportCostForwarderItems)
                {
                    TransportCostForwarderItem item;

                    if (dto.TransportCostForwarderItemID < 0)
                    {
                        item = new TransportCostForwarderItem();

                        dbItem.TransportCostForwarderItem.Add(item);
                    }
                    else
                    {
                        item = dbItem.TransportCostForwarderItem.FirstOrDefault(o => o.TransportCostForwarderItemID == dto.TransportCostForwarderItemID);
                    }

                    if (item != null)
                    {
                        Mapper.Map <DTO.TransportCostForwarderItem, TransportCostForwarderItem>(dto, item);
                    }
                }
            }

            // Convert string to DateTime Transport Invoice Date
            if (!string.IsNullOrEmpty(dtoItem.TransportInvoiceDate))
            {
                dbItem.TransportInvoiceDate = dtoItem.TransportInvoiceDate.ConvertStringToDateTime();
            }
            else
            {
                dbItem.TransportInvoiceDate = null;
            }

            // Mapping from dto to db
            Mapper.Map <DTO.TransportCostForwarder, TransportCostForwarder>(dtoItem, dbItem);
        }