Пример #1
0
        public override async Task <int> SaveAsync(DistributionList item)
        {
            try
            {
                // TODO Rework this to pull it up into the service.
                // TODO Also need to validate that the user has rights to save to this dept.
                using (var db = new DistyModelContainer())
                {
                    var dept = db.Depts.Find(item.DeptId);
                    if (dept == null)
                    {
                        var deptId = await _deptRepository.SaveAsync(new DistributionDept()
                        {
                            Name = item.Name
                        });

                        dept = db.Depts.Find(deptId);
                    }

                    var dbItem = Mapper.Map <DistributionList, List>(item);
                    dbItem.Dept = dept;
                    if (item.Id == 0)
                    {
                        db.Set <List>().Add(dbItem);
                    }
                    else
                    {
                        db.Set <List>().Attach(dbItem);
                        db.Entry(item).State = EntityState.Modified;
                    }

                    await db.SaveChangesAsync();

                    return(dbItem.Id);
                }
            }
            catch (DbEntityValidationException e)
            {
                var msg = HandleValidationError(e);
                _log.Error(string.Format("Error saving Disty list:\r\n  {0}", msg), e);
                throw new LoggedException(msg, e);
            }
        }
        public override async Task <int> SaveAsync(DistributionList item)
        {
            try
            {
                using (var db = new DistyEntities())
                {
                    var dept = db.Depts.Find(item.DeptId);
                    if (dept == null)
                    {
                        var deptId = await _deptRepository.SaveAsync(new DistributionDept()
                        {
                            Name = item.Name
                        });

                        dept = db.Depts.Find(deptId);
                    }

                    var dbItem = Mapper.Map <DistributionList, List>(item);
                    dbItem.Dept = dept;
                    if (item.Id == 0)
                    {
                        db.Set <List>().Add(dbItem);
                    }
                    else
                    {
                        db.Set <List>().Attach(dbItem);
                        db.Entry(item).State = EntityState.Modified;
                    }

                    await db.SaveChangesAsync();

                    return(dbItem.Id);
                }
            }
            catch (DbEntityValidationException e)
            {
                var msg = HandleValidationError(e);
                _log.Error(string.Format("Error saving Disty list:\r\n  {0}", msg), e);
                throw new LoggedException(msg, e);
            }
        }