コード例 #1
0
        public async Task <int> Create(GarmentPOMasterDistribution model)
        {
            int Created = 0;

            using (var transaction = dbContext.Database.BeginTransaction())
            {
                try
                {
                    EntityExtension.FlagForCreate(model, identityService.Username, USER_AGENT);
                    foreach (var item in model.Items)
                    {
                        EntityExtension.FlagForCreate(item, identityService.Username, USER_AGENT);
                        if (item.Details != null)
                        {
                            foreach (var detail in item.Details)
                            {
                                EntityExtension.FlagForCreate(detail, identityService.Username, USER_AGENT);
                            }
                        }
                    }

                    dbSet.Add(model);
                    Created = await dbContext.SaveChangesAsync();

                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }

            return(Created);
        }
コード例 #2
0
        internal GarmentPOMasterDistribution CopyData(GarmentPOMasterDistribution data)
        {
            return(new GarmentPOMasterDistribution
            {
                UId = data.UId,

                Id = data.Id,
                Active = data.Active,
                CreatedUtc = data.CreatedUtc,
                CreatedBy = data.CreatedBy,
                CreatedAgent = data.CreatedAgent,
                LastModifiedUtc = data.LastModifiedUtc,
                LastModifiedBy = data.LastModifiedBy,
                LastModifiedAgent = data.LastModifiedAgent,
                IsDeleted = data.IsDeleted,
                DeletedUtc = data.DeletedUtc,
                DeletedBy = data.DeletedBy,
                DeletedAgent = data.DeletedAgent,

                DOId = data.DOId,
                DONo = data.DONo,
                DODate = data.DODate,
                SupplierId = data.SupplierId,
                SupplierName = data.SupplierName
            });
        }
コード例 #3
0
        public async Task <GarmentPOMasterDistribution> GetTestData(GarmentPOMasterDistribution data = null)
        {
            data = data ?? await GetNewData();

            await facade.Create(data);

            return(data);
        }
コード例 #4
0
        public async Task <int> Update(long id, GarmentPOMasterDistribution data)
        {
            int Updated = 0;

            using (var transaction = dbContext.Database.BeginTransaction())
            {
                try
                {
                    var oldData = dbSet.Where(d => d.Id == id)
                                  .Include(d => d.Items)
                                  .ThenInclude(i => i.Details)
                                  .Single();

                    EntityExtension.FlagForUpdate(oldData, identityService.Username, USER_AGENT);

                    foreach (var oldItem in oldData.Items)
                    {
                        EntityExtension.FlagForUpdate(oldItem, identityService.Username, USER_AGENT);

                        var newItem = data.Items.Single(i => i.Id == oldItem.Id);

                        if (oldItem.Details != null)
                        {
                            foreach (var oldDetail in oldItem.Details)
                            {
                                var newDetail = (newItem.Details ?? new List <GarmentPOMasterDistributionDetail>()).SingleOrDefault(i => i.Id == oldDetail.Id);

                                if (newDetail == null)
                                {
                                    EntityExtension.FlagForDelete(oldDetail, identityService.Username, USER_AGENT);
                                }
                                else
                                {
                                    oldDetail.Conversion      = newDetail.Conversion;
                                    oldDetail.Quantity        = newDetail.Quantity;
                                    oldDetail.OverUsageReason = newDetail.OverUsageReason;

                                    EntityExtension.FlagForUpdate(oldDetail, identityService.Username, USER_AGENT);
                                }
                            }
                        }
                    }

                    foreach (var item in data.Items)
                    {
                        var oldItem = oldData.Items.Single(i => i.Id == item.Id);

                        if (item.Details != null)
                        {
                            foreach (var detail in item.Details)
                            {
                                var oldDetail = oldItem.Details.SingleOrDefault(d => d.Id == detail.Id);

                                if (oldDetail == null)
                                {
                                    oldItem.Details.Add(detail);

                                    EntityExtension.FlagForCreate(detail, identityService.Username, USER_AGENT);
                                }
                            }
                        }
                    }

                    Updated = await dbContext.SaveChangesAsync();

                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }

            return(Updated);
        }