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; } }
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)); } }
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); } }
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)); } }
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; } }