public async Task <ServiceResult <int> > CreateAsync(User admin, GroupRequestModel group) { if (groupsRepository.GetGroupsCount(group.Name) != 0) { return(ServiceResult <int> .Error(400, "Group already exists")); } var groupEntity = new Group() { Name = group.Name, Balance = 0.0M, GroupCode = Math.Abs(group.Name.GetHashCode()).ToString(), AdminId = admin.Id }; var result = await groupsRepository.CreateAsync(groupEntity); if (result is null) { return(ServiceResult <int> .Error(500, "Error creating group")); } var addedUser = await groupUsersService.AddUser(result.GroupCode, admin); if (addedUser is null) { return(ServiceResult <int> .Error(500, "Error creating adding user to group")); } result.Admin = admin; result.AdminId = admin.Id; return(ServiceResult <int> .Success(GroupViewModel.FromModel(result))); }