public CommonResult<CreateGroupResult> CreateGroup(CreateGroupRequest request) { var validator = new CreateGroupRequestDataValidator(); request.Password = request.Password != null ? request.Password.ToBase64() : request.Password; request.PasswordConfirmation = request.PasswordConfirmation != null ? request.PasswordConfirmation.ToBase64() : request.Password; var validationResult = validator.Validate(request); if (validationResult.IsValid) { var result = _groupsRepository.Create(request); if (result.IsSuccess) { return CommonResult<CreateGroupResult>.Success(result.Item); } else { return CommonResult<CreateGroupResult>.Failure(result.ErrorMessage); } } else { return CommonResult<CreateGroupResult>.Failure(validationResult.Errors.First().ErrorMessage); } }
public CommonResult<CreateGroupResult> Create(CreateGroupRequest request) { using(var context = ContextFactory.GetDbContext(_dbConfiguration)) { var user = context.Users.SingleOrDefault(u => u.UserName == request.UserName); if (user != null) { var groupWithGivenName = context.Groups.FirstOrDefault(x => x.Name == request.Name); if (groupWithGivenName == null) { var group = new Group { Name = request.Name, Description = request.Description, IsPrivate = request.IsPrivate, Password = request.Password, Owner = user }; context.Groups.Add(group); context.UserGroups.Add(new UserGroup { User = user, Group = group }); context.SaveChanges(); return CommonResult<CreateGroupResult>.Success(new CreateGroupResult { Id = group.Id }); } else { return CommonResult<CreateGroupResult>.Failure("Grupa o podanej nazwie już istnieje."); } } else { return CommonResult<CreateGroupResult>.Failure("Nie znaleziono podanego użytkownika."); } } }