Example #1
0
        public RepositoryResult <GroupInterfaceModel> CreateGroup(GroupInterfaceModel createGroup)
        {
            try
            {
                using (DataContext dbContext = DataContext.Create())
                    using (DbContextTransaction tx = dbContext.Database.BeginTransaction(System.Data.IsolationLevel.Serializable))
                    {
                        var group = dbContext.GroupModels.Where(m => m.Code == createGroup.Code).SingleOrDefault();
                        if (group != null)
                        {
                            tx.Rollback();
                            return(new RepositoryResult <GroupInterfaceModel>(HttpStatusCode.Conflict));
                        }

                        group = new GroupModel();
                        CopyToGroupModel(group, createGroup);

                        dbContext.GroupModels.Add(group);
                        if (dbContext.SaveChanges() == 0)
                        {
                            tx.Rollback();
                            return(new RepositoryResult <GroupInterfaceModel>(HttpStatusCode.BadRequest));
                        }
                        tx.Commit();
                        return(new RepositoryResult <GroupInterfaceModel>(HttpStatusCode.Created));
                    }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #2
0
        public IHttpActionResult Post([FromBody] GroupInterfaceModel value)
        {
            try
            {
                var result = repository.CreateGroup(value);
                if (result.Code != HttpStatusCode.Created)
                {
                    return(Content(result.Code, ModelState.GetErrorsDelprefix("value")));
                }

                result = repository.GetGroupByCodeForInterface(value.Code);
                var _UrlHelper = new UrlHelper(this.Request);
                var Url        = _UrlHelper.Link("GetGroupsById", new { id = result.resultData.Id });
                return(Created(Url, result.resultData));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
Example #3
0
 private bool CopyToGroupModel(GroupModel group, GroupInterfaceModel model)
 {
     try
     {
         group.Code                        = model.Code;
         group.Name                        = model.Name;
         group.MakerModelId                = model.MakerModelId;
         group.ContainerModelId            = model.ContainerModelId;
         group.IsCapacity                  = model.IsCapacity;
         group.ContainerCapacityBt20Dry    = model.ContainerCapacityBt20Dry;
         group.ContainerCapacityBt20Reefer = model.ContainerCapacityBt20Reefer;
         group.ContainerCapacityBt40Dry    = model.ContainerCapacityBt40Dry;
         group.ContainerCapacityBt40Reefer = model.ContainerCapacityBt40Reefer;
         group.Deleted                     = model.Deleted;
         return(true);
     }
     catch
     {
         return(false);
     }
 }
Example #4
0
        public IHttpActionResult Put(int id, [FromBody] GroupInterfaceModel value)
        {
            try
            {
                if (id <= 0)
                {
                    return(BadRequest());
                }

                var result = repository.ModifyGroup(id, value);
                if (result.Code != HttpStatusCode.OK)
                {
                    return(Content(result.Code, ModelState.GetErrorsDelprefix("value")));
                }
                var model = repository.GetGroupByIdForInterface(id);
                return(Ok(model));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
Example #5
0
        public RepositoryResult <GroupInterfaceModel> ModifyGroup(int groupId, GroupInterfaceModel modifiedGroup)
        {
            try
            {
                if (groupId <= 0)
                {
                    return(new RepositoryResult <GroupInterfaceModel>(HttpStatusCode.BadRequest));
                }

                using (DataContext dbContext = DataContext.Create())
                    using (DbContextTransaction tx = dbContext.Database.BeginTransaction(System.Data.IsolationLevel.Serializable))
                    {
                        modifiedGroup.Id = groupId;
                        var group = dbContext.GroupModels.Where(m => m.Id == groupId).SingleOrDefault();
                        if (group == null)
                        {
                            tx.Rollback();
                            return(new RepositoryResult <GroupInterfaceModel>(HttpStatusCode.NotFound));
                        }

                        CopyToGroupModel(group, modifiedGroup);
                        dbContext.Entry(group).State = EntityState.Modified;
                        if (dbContext.SaveChanges() == 0)
                        {
                            tx.Rollback();
                            return(new RepositoryResult <GroupInterfaceModel>(HttpStatusCode.Conflict));
                        }
                        tx.Commit();
                        return(new RepositoryResult <GroupInterfaceModel>(HttpStatusCode.OK));
                    }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }