public async Task <GroupManagerResponse> CreateGroupAsync(GroupForDto model, string userId) { if (model == null) { throw new NullReferenceException("Group model is null."); } await using (_context) { var file = model.File; var uploadResult = new ImageUploadResult(); if (file != null) { await using (var steam = file.OpenReadStream()) { var uploadParams = new ImageUploadParams { File = new FileDescription(file.Name, steam) }; uploadResult = _cloudinary.Upload(uploadParams); } model.Url = uploadResult.Url.ToString(); model.PublicId = uploadResult.PublicId; } var group = new Group { Id = Guid.NewGuid().ToString(), GroupName = model.GroupName, PhotoUrl = model?.Url }; var user = await _userManager.FindByIdAsync(userId); var groupMember = new GroupMember { GroupId = group.Id, UserId = user.Id, Role = "Admin", FirstName = user.FirstName, LastName = user.LastName }; await _context.AddAsync(groupMember); await _context.AddAsync(group); await _context.SaveChangesAsync(); return(new GroupManagerResponse { Message = "Grup oluşturuldu.", IsSuccess = true }); } }
public async Task <GroupManagerResponse> UpdateGroupAsync(GroupForDto model, string userId) { if (model == null) { throw new NullReferenceException("Group model is null."); } await using (_context) { var group = await _context.Groups.FindAsync(model.GroupId); var userClaim = await _context.GroupMembers.SingleOrDefaultAsync(u => u.GroupId == model.GroupId && u.UserId == userId && u.Role == "Admin"); if (group == null || userClaim == null) { return(new GroupManagerResponse { Message = "Grup bulunamadı veya bu işlem için yetkiniz yok.", IsSuccess = false }); } if (model.GroupName != null) { group.GroupName = model.GroupName; } var file = model.File; var uploadResult = new ImageUploadResult(); if (file != null) { await using (var steam = file.OpenReadStream()) { var uploadParams = new ImageUploadParams { File = new FileDescription(file.Name, steam) }; uploadResult = _cloudinary.Upload(uploadParams); } model.Url = uploadResult.Url.ToString(); model.PublicId = uploadResult.PublicId; group.PhotoUrl = model.Url.ToString(); } _context.Update(group); await _context.SaveChangesAsync(); return(new GroupManagerResponse { Message = "Grup düzenlendi.", IsSuccess = true }); } }
public IActionResult UpdateGroup([FromForm] GroupForDto model) { var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value; if (ModelState.IsValid) { var group = _groupService.UpdateGroupAsync(model, userId); if (group.Result.IsSuccess) { return(Ok(group.Result)); } return(BadRequest(group.Result)); } return(BadRequest("Some properties are not valid.")); }