private void reArrangeFieldCollaborationsAfterMove(ICollection <DrcCard> targetVersionCards, DrcCardField fieldCollaboration) { var collaborationCard = _documentTransferUnitOfWork.DrcCardRepository.GetById(fieldCollaboration.DrcCardId); foreach (var drcCard in targetVersionCards.ToList()) { if (drcCard.MainCardId != null && collaborationCard.MainCardId != null && (collaborationCard.MainCardId == (int)drcCard.MainCardId)) { DrcCardField field = new DrcCardField(); field.Field = fieldCollaboration.Field; field.FieldId = fieldCollaboration.FieldId; _documentTransferUnitOfWork.DrcCardFieldRepository.Remove(fieldCollaboration); field.IsRelationCollaboration = true; field.DrcCard = drcCard; _documentTransferUnitOfWork.DrcCardFieldRepository.Add(field); } else if (drcCard.MainCardId != null && collaborationCard.MainCardId == null && (collaborationCard.Id == (int)drcCard.MainCardId)) { DrcCardField field = new DrcCardField(); field.Field = fieldCollaboration.Field; field.FieldId = fieldCollaboration.FieldId; field.IsRelationCollaboration = true; _documentTransferUnitOfWork.DrcCardFieldRepository.Remove(fieldCollaboration); field.DrcCard = drcCard; _documentTransferUnitOfWork.DrcCardFieldRepository.Add(field); } else if (drcCard.MainCardId != null && (collaborationCard.Id == (int)drcCard.MainCardId)) { DrcCardField field = new DrcCardField(); field.Field = fieldCollaboration.Field; field.IsRelationCollaboration = true; field.DrcCard = drcCard; _documentTransferUnitOfWork.DrcCardFieldRepository.Remove(fieldCollaboration); _documentTransferUnitOfWork.DrcCardFieldRepository.Add(field); } else if (collaborationCard.MainCardId != null && collaborationCard.MainCardId == drcCard.Id) { DrcCardField field = new DrcCardField { Field = fieldCollaboration.Field, IsRelationCollaboration = true, DrcCard = drcCard }; _documentTransferUnitOfWork.DrcCardFieldRepository.Remove(fieldCollaboration); _documentTransferUnitOfWork.DrcCardFieldRepository.Add(field); } } }
public async Task <IList <FieldBusinessModel> > GetCardFields(int cardId) { var drcCardFields = _drcUnitOfWork.DrcCardFieldRepository.GetDrcCardFieldsByDrcCardId(cardId); var fieldBusinessModels = new List <FieldBusinessModel>(); foreach (var drcCardField in drcCardFields) { var field = _drcUnitOfWork.FieldRepository.GetById(drcCardField.FieldId); var fieldBusinessModel = _mapper.Map <FieldBusinessModel>(field); DrcCardField drcFieldCollaboration = _drcUnitOfWork.DrcCardFieldRepository.GetFieldCollaborationByFieldId(field.Id); if (drcFieldCollaboration != null) { var collaborationcard = _drcUnitOfWork.DrcCardRepository.GetById(drcFieldCollaboration.DrcCardId); fieldBusinessModel.CollaborationId = collaborationcard.Id; } fieldBusinessModels.Add(fieldBusinessModel); } return(fieldBusinessModels); }
public void CloneSourceVersionToNewVersion(SubdomainVersion subdomainVersion) { var sourceId = (int)subdomainVersion.SourceVersionId; var sourceVersionCards = _drcUnitOfWork.DrcCardRepository.getAllCardsBySubdomainVersion(sourceId); IList <SourceNewDrcCardMap> sourceNewDrcCardMaps = new List <SourceNewDrcCardMap>(); foreach (var sourceVersionCard in sourceVersionCards) { SourceNewDrcCardMap sourceNewDrcCardMap = new SourceNewDrcCardMap(); sourceNewDrcCardMap.SourceCardId = sourceVersionCard.Id; DrcCard newDrcCard = new DrcCard(); newDrcCard = sourceVersionCard; newDrcCard.Id = 0; newDrcCard.SubdomainVersionId = 0; newDrcCard.SubdomainVersion = subdomainVersion; _drcUnitOfWork.DrcCardRepository.Add(newDrcCard); _drcUnitOfWork.Complete(); sourceNewDrcCardMap.NewCardId = newDrcCard.Id; sourceNewDrcCardMaps.Add(sourceNewDrcCardMap); } foreach (var sourceNewDrcCardMap in sourceNewDrcCardMaps) { var newDrcCard = _drcUnitOfWork.DrcCardRepository.GetById(sourceNewDrcCardMap.NewCardId); var sourceCardResponsibilities = _drcUnitOfWork.DrcCardResponsibilityRepository.GetDrcCardResponsibilitiesByDrcCardId( sourceNewDrcCardMap.SourceCardId); foreach (var sourceDrcCardResponsibility in sourceCardResponsibilities) { Responsibility newResponsibility = new Responsibility(); newResponsibility = _drcUnitOfWork.ResponsibilityRepository.GetByIdWithoutTracking(sourceDrcCardResponsibility .ResponsibilityId); var sourceResponsibilityCollaborations = _drcUnitOfWork.DrcCardResponsibilityRepository.GetResponsibilityCollaborationsByResponsibilityId(newResponsibility.Id); newResponsibility.Id = 0; _drcUnitOfWork.ResponsibilityRepository.Add(newResponsibility); DrcCardResponsibility newDrcCardResponsibility = new DrcCardResponsibility(); newDrcCardResponsibility.DrcCard = newDrcCard; newDrcCardResponsibility.Responsibility = newResponsibility; newDrcCardResponsibility.IsRelationCollaboration = false; _drcUnitOfWork.DrcCardResponsibilityRepository.Add(newDrcCardResponsibility); foreach (var sourceResponsibilityCollaboration in sourceResponsibilityCollaborations) { int newDrcCardId = sourceNewDrcCardMaps .Where(c => c.SourceCardId == sourceResponsibilityCollaboration.DrcCardId) .Select(c => c.NewCardId).Single(); DrcCardResponsibility newResponsibilityCollaboration = new DrcCardResponsibility(); newResponsibilityCollaboration.DrcCardId = newDrcCardId; newResponsibilityCollaboration.Responsibility = newResponsibility; newResponsibilityCollaboration.IsRelationCollaboration = sourceResponsibilityCollaboration.IsRelationCollaboration; _drcUnitOfWork.DrcCardResponsibilityRepository.Add(newResponsibilityCollaboration); _drcUnitOfWork.Complete(); } _drcUnitOfWork.Complete(); } var sourceCardFields = _drcUnitOfWork.DrcCardFieldRepository .GetDrcCardFieldsByDrcCardId(sourceNewDrcCardMap.SourceCardId); foreach (var sourceCardField in sourceCardFields) { Field newField = new Field(); newField = _drcUnitOfWork.FieldRepository.GetByIdWithoutTracking(sourceCardField.FieldId); var sourceFieldCollaboration = _drcUnitOfWork.DrcCardFieldRepository.GetFieldCollaborationByFieldId(newField.Id); newField.Id = 0; _drcUnitOfWork.FieldRepository.Add(newField); DrcCardField newDrcCardField = new DrcCardField(); newDrcCardField.DrcCard = newDrcCard; newDrcCardField.Field = newField; newDrcCardField.IsRelationCollaboration = false; _drcUnitOfWork.DrcCardFieldRepository.Add(newDrcCardField); if (sourceFieldCollaboration != null) { int newCollaborationDrcCardId = sourceNewDrcCardMaps .Where(c => c.SourceCardId == sourceFieldCollaboration.DrcCardId) .Select(c => c.NewCardId).Single(); DrcCardField newDrcCardFieldCollaboration = new DrcCardField(); newDrcCardFieldCollaboration.DrcCardId = newCollaborationDrcCardId; newDrcCardFieldCollaboration.Field = newField; newDrcCardFieldCollaboration.IsRelationCollaboration = true; _drcUnitOfWork.DrcCardFieldRepository.Add(newDrcCardFieldCollaboration); _drcUnitOfWork.Complete(); } _drcUnitOfWork.Complete(); } var sourceCardAuthorizations = _drcUnitOfWork.AuthorizationRepository.GetAuthorizationsByDrcCardId(sourceNewDrcCardMap.SourceCardId); foreach (var sourceCardAuthorization in sourceCardAuthorizations) { Authorization newAuthorization = new Authorization(); newAuthorization = _drcUnitOfWork.AuthorizationRepository.GetByIdWithoutTracking(sourceCardAuthorization.Id); var oldAuthorizationRoles = _drcUnitOfWork.AuthorizationRoleRepository.GetAuthorizationRolesByAuthorizationId(newAuthorization.Id); newAuthorization.Id = 0; newAuthorization.DrcCardId = 0; newAuthorization.DrcCard = newDrcCard; _drcUnitOfWork.AuthorizationRepository.Add(newAuthorization); foreach (var oldAuthorizationRole in oldAuthorizationRoles) { AuthorizationRole authorizationRole = new AuthorizationRole(); authorizationRole.AuthorizationId = newAuthorization.Id; authorizationRole.RoleId = oldAuthorizationRole.RoleId; _drcUnitOfWork.AuthorizationRoleRepository.Add(authorizationRole); _drcUnitOfWork.Complete(); } } _drcUnitOfWork.Complete(); } }
public void Add(string values) { var newFieldBusinessModel = new FieldBusinessModel(); JsonConvert.PopulateObject(values, newFieldBusinessModel); Field field = _mapper.Map <Field>(newFieldBusinessModel); switch (field.Type) { case FieldType.String: field.Nullable = false; field.MeasurementType = null; field.ItemName = null; field.MaxValue = null; field.MaxValue = null; field.EnumValues = null; newFieldBusinessModel.CollaborationId = null; _drcUnitOfWork.FieldRepository.Add(field); break; case FieldType.Integer: case FieldType.Byte: case FieldType.Double: case FieldType.Decimal: case FieldType.Long: field.CreditCard = false; field.RegularExpression = null; field.MeasurementType = null; field.ItemName = null; field.MaxLength = null; field.MinLength = null; field.EnumValues = null; newFieldBusinessModel.CollaborationId = null; _drcUnitOfWork.FieldRepository.Add(field); break; case FieldType.Bool: field.CreditCard = false; field.Unique = false; field.RegularExpression = null; field.MeasurementType = null; field.ItemName = null; field.MaxValue = null; field.MaxValue = null; field.MaxLength = null; field.MinLength = null; field.EnumValues = null; newFieldBusinessModel.CollaborationId = null; _drcUnitOfWork.FieldRepository.Add(field); break; case FieldType.Enum: field.CreditCard = false; field.RegularExpression = null; field.MeasurementType = null; field.MaxValue = null; field.MaxValue = null; field.MaxLength = null; field.MinLength = null; newFieldBusinessModel.CollaborationId = null; _drcUnitOfWork.FieldRepository.Add(field); break; case FieldType.Time: case FieldType.DateTime: case FieldType.DateOnly: field.CreditCard = false; field.RegularExpression = null; field.MeasurementType = null; field.ItemName = null; field.MaxValue = null; field.MaxValue = null; field.MaxLength = null; field.MinLength = null; field.EnumValues = null; newFieldBusinessModel.CollaborationId = null; _drcUnitOfWork.FieldRepository.Add(field); break; case FieldType.RelationElement: field.Nullable = false; field.CreditCard = false; field.RegularExpression = null; field.MeasurementType = null; field.ItemName = null; field.MaxValue = null; field.MaxValue = null; field.MaxLength = null; field.MinLength = null; field.EnumValues = null; field.DefaultValue = null; _drcUnitOfWork.FieldRepository.Add(field); break; case FieldType.ComplexTypeElement: case FieldType.DynamicField: case FieldType.DetailElement: field.Nullable = false; field.CreditCard = false; field.Unique = false; field.RegularExpression = null; field.MeasurementType = null; field.MaxValue = null; field.MaxValue = null; field.MaxLength = null; field.MinLength = null; field.EnumValues = null; field.DefaultValue = null; newFieldBusinessModel.CollaborationId = null; _drcUnitOfWork.FieldRepository.Add(field); break; case FieldType.Measurement: field.CreditCard = false; field.Unique = false; field.RegularExpression = null; field.ItemName = null; field.MaxValue = null; field.MaxValue = null; field.MaxLength = null; field.MinLength = null; field.EnumValues = null; field.Nullable = false; newFieldBusinessModel.CollaborationId = null; _drcUnitOfWork.FieldRepository.Add(field); break; } DrcCardField newDrcCardFieldCollaboration = new DrcCardField(); newDrcCardFieldCollaboration.DrcCard = _drcUnitOfWork.DrcCardRepository.GetById(newFieldBusinessModel.DrcCardId); newDrcCardFieldCollaboration.Field = field; _drcUnitOfWork.DrcCardFieldRepository.Add(newDrcCardFieldCollaboration); if (newFieldBusinessModel.CollaborationId != null) { DrcCardField newFieldCollaboration = new DrcCardField(); newFieldCollaboration.DrcCardId = (int)newFieldBusinessModel.CollaborationId; newFieldCollaboration.FieldId = field.Id; newFieldCollaboration.IsRelationCollaboration = true; _drcUnitOfWork.DrcCardFieldRepository.Add(newFieldCollaboration); } _drcUnitOfWork.Complete(); }