public void MoveBetweenGroups(int groupIdTo, PersonModificationModel modelFrom, UpdatePersonOrderNoModel updateModel) { PersonModificationData dataFrom = _autoMapperService.MapPersonModificationModel(modelFrom); UpdatePersonOrderNo updateData = _autoMapperService.MapUpdatePersonModel(updateModel); _personService.MoveBetweenGroups(UserId, groupIdTo, dataFrom, updateData); }
public void DetachInnerGroupMemeber(PersonModificationModel personModel, UpdatePersonOrderNoModel updateModel) { PersonModificationData personData = _autoMapperService.MapPersonModificationModel(personModel); UpdatePersonOrderNo updateData = _autoMapperService.MapUpdatePersonModel(updateModel); _personService.DetachMember(UserId, personData, updateData); }
public void UpdateOrderNo(string userId, int groupId, UpdatePersonOrderNo data) { var group = _groupRepository.LoadEagerWithPersons(userId, groupId); UpdateOrderNo(data, group); _unitOfWork.Save(); }
private void UpdateOrderNo(UpdatePersonOrderNo data, Group group) { var updateOrderNoService = new UpdatePersonOrderNoService(); var container = new UpdatePersonOrderContainer { UpdateOrderNoData = data, Group = group }; updateOrderNoService.UpdateOrderNo(data.UpdateType, container); }
public void CreateInnerGroup(PersonModificationModel personModel, UpdatePersonOrderNoModel updateModel) //tutaj musi wpasc model dla update z wypelnionym elementem baseItemId { PersonModificationData personData = _autoMapperService.MapPersonModificationModel(personModel); personData.InnerGroupKey = Guid.NewGuid(); UpdatePersonOrderNo updateData = _autoMapperService.MapUpdatePersonModel(updateModel); _personService.CreateInnerGroupAndMembership(UserId, personData, updateData); }
public void DetachMember(string userId, PersonModificationData personData, UpdatePersonOrderNo updateData) { var group = _groupRepository.LoadEager(userId, personData.GroupId); var relatedItems = Collect(group, personData.ModifiedPersonIds); DeleteMembership(group, personData.ModifiedPersonIds.First(), personData.InnerGroupKey.Value); UpdateOrderNo(updateData, group); DeleteMembership(group, relatedItems.PersonsToModify); DeleteInnerGroups(group, relatedItems.InnerGroupsToDelete); _unitOfWork.Save(); }
public void UpdatePersonOrderNo(int groupId, UpdatePersonOrderNoModel model) { UpdatePersonOrderNo data = _autoMapperService.MapUpdatePersonModel(model); _personService.UpdateOrderNo(UserId, groupId, data); }
public void MoveBetweenGroups(string userId, int groupIdTo, PersonModificationData from, UpdatePersonOrderNo updateData) { Group groupFrom = _groupRepository.LoadEagerWithPersonsAndInnerGroups(userId, from.GroupId); Group groupTo = _groupRepository.LoadEagerWithPersonsAndInnerGroups(userId, groupIdTo); if (groupFrom == null || groupTo == null) { throw new ArgumentException("Invalid group id."); } var personsToMove = groupFrom.FindPersons(from.ModifiedPersonIds); personsToMove.ForEach(n => groupTo.AddPerson(n)); if (from.InnerGroupKey != null) { DeleteInnerGroup(groupFrom, from.InnerGroupKey.Value); // because inner group is value object remove it and add it again with the same key groupTo.AddInnerGroup(from.InnerGroupKey.Value); } UpdateOrderNo(updateData, groupTo); // update order no for moved elements _unitOfWork.Save(); }
// adding single person to existing inner group public void AddInnerGroupMember(string userId, PersonModificationData personData, UpdatePersonOrderNo updateData) { var group = _groupRepository.LoadEagerWithPersonsAndInnerGroups(userId, personData.GroupId); var personId = personData.ModifiedPersonIds.First(); if (!group.CheckInnerGroupKey(personData.InnerGroupKey.Value) || !group.CheckGroupMember(personId)) { throw new Exception(); } group.CreateInnerGroupMembership(personData.InnerGroupKey.Value, personId); UpdateOrderNo(updateData, group); _unitOfWork.Save(); }
public void CreateInnerGroupAndMembership(string userId, PersonModificationData personData, UpdatePersonOrderNo updateData) { var group = _groupRepository.LoadEagerWithPersonsAndInnerGroups(userId, personData.GroupId); CreateInnerGroupAndMembershipUncommited(group, personData.InnerGroupKey.Value, personData.ModifiedPersonIds); UpdateOrderNo(updateData, group); // here I update only one element _unitOfWork.Save(); }