public async Task <ActionResult> CreateSiwesCoordinator([FromForm] SiwesCoordinatorRequest siwesCoordinatorRequest) { var result = await _siwesCoRepository.CreateSiwesCo(siwesCoordinatorRequest); if (result.StatusCode == Helpers.Success) { return(StatusCode(StatusCodes.Status200OK, result)); } else { return(StatusCode(StatusCodes.Status400BadRequest, result)); } }
public async Task <ToRespond> UpdateSiwesCo(int siwesCoId, SiwesCoordinatorRequest siwesCoordinatorRequest) { var siwesCo = await _dataContext.SiwesCoordinators.FindAsync(siwesCoId); if (siwesCo == null) { return(new ToRespond { StatusCode = Helpers.NotFound, StatusMessage = Helpers.StatusMessageNotFound }); } if (siwesCoordinatorRequest == null) { return(new ToRespond { StatusCode = Helpers.ObjectNull, StatusMessage = Helpers.StatusMessageObjectNull }); } siwesCo.EmailAddress = siwesCoordinatorRequest.EmailAddress; siwesCo.FirstName = siwesCoordinatorRequest.FirstName; siwesCo.LastName = siwesCoordinatorRequest.LastName; siwesCo.PhoneNumber = siwesCoordinatorRequest.PhoneNumber; siwesCo.Department = siwesCoordinatorRequest.Department; if (siwesCoordinatorRequest.PictureUrl != null) { var resultImage = _cloudinaryRepository.UploadFileToCloudinary(siwesCoordinatorRequest.PictureUrl); var image = (RawUploadResult)resultImage.ObjectValue; siwesCo.PictureUrl = image.Uri.ToString(); } //var dbTransaction = await _dataContext.Database.BeginTransactionAsync(); _globalRepository.Update(siwesCo); var result = await _globalRepository.SaveAll(); if (result != null) { if (!result.Value) { return(new ToRespond() { StatusCode = Helpers.SaveError, StatusMessage = Helpers.StatusMessageSaveError }); } //await dbTransaction.CommitAsync(); return(new ToRespond() { StatusCode = Helpers.Success, ObjectValue = _mapper.Map <SiwesCoordinatorResponse>(siwesCo), StatusMessage = "SiwesCo Updated Successfully!!!" }); } return(new ToRespond() { StatusCode = Helpers.SaveError, StatusMessage = "Can not update SiwesCo" }); }
public async Task <ToRespond> CreateSiwesCo(SiwesCoordinatorRequest siwesCoordinatorRequest) { if (siwesCoordinatorRequest == null) { return(new ToRespond() { StatusCode = Helpers.ObjectNull, StatusMessage = Helpers.StatusMessageObjectNull }); } if (await SiwesCoordinatorExists(siwesCoordinatorRequest.EmailAddress)) { return(new ToRespond() { StatusCode = Helpers.ObjectExists, StatusMessage = Helpers.StatusMessageObjectExists }); } var siwesCoordinator = new SiwesCoordinator { EmailAddress = siwesCoordinatorRequest.EmailAddress, FirstName = siwesCoordinatorRequest.FirstName, LastName = siwesCoordinatorRequest.LastName, PhoneNumber = siwesCoordinatorRequest.PhoneNumber, Department = siwesCoordinatorRequest.Department, }; if (siwesCoordinatorRequest.PictureUrl != null) { var result = _cloudinaryRepository.UploadFileToCloudinary(siwesCoordinatorRequest.PictureUrl); var image = (RawUploadResult)result.ObjectValue; siwesCoordinator.PictureUrl = image.Uri.ToString(); } var dbTransaction = await _dataContext.Database.BeginTransactionAsync(); _globalRepository.Add(siwesCoordinator); var saveVal = await _globalRepository.SaveAll(); if (saveVal != null) { if (!saveVal.Value) { return(new ToRespond() { StatusCode = Helpers.SaveNoRowAffected, StatusMessage = "Can Not Save" }); } var user = new User { UserName = siwesCoordinatorRequest.EmailAddress, Email = siwesCoordinatorRequest.EmailAddress, UserTypeId = siwesCoordinator.SiwesCoordinatorId, UserType = Helpers.SiwesCoordinator }; var password = (new Generate()).RandomPassword(); var result = await _userManager.CreateAsync(user, password); if (result.Succeeded) { //ASSIGN STUDENT ROLE TO USER (Student) string SiwesCoordinatorTypeRole = Helpers.SiwesCoordinatorRole; var assignmentResult = await _userManager.AddToRoleAsync(user, SiwesCoordinatorTypeRole); if (assignmentResult.Succeeded) { //THEN UPDATE Student TABLE USERID COLUMN WITH NEWLY CREATED USER ID siwesCoordinator.UserId = user.Id; var SiwesCoordinatorUpdateResult = _globalRepository.Update(siwesCoordinator); if (!SiwesCoordinatorUpdateResult) { return(new ToRespond() { StatusCode = Helpers.NotSucceeded, StatusMessage = "Not Suceeded" }); } var SiwesCoordinatorUpdateSaveResult = await _globalRepository.SaveAll(); if (!SiwesCoordinatorUpdateSaveResult.HasValue) { return(new ToRespond() { StatusCode = Helpers.SaveError, StatusMessage = Helpers.StatusMessageSaveError }); } if (!SiwesCoordinatorUpdateSaveResult.Value) { return(new ToRespond() { StatusCode = Helpers.SaveNoRowAffected, StatusMessage = "Can not save Row affected" }); } //SEND MAIL TO Student TO CONFIRM EMAIL var userTokenVal = await _userManager.GenerateEmailConfirmationTokenAsync(user); string hashedEmail = GetHashedEmail(user.Email); /*var shortToken = userTokenVal.Substring(0, 7); * user.ShortToken = shortToken; * user.LongToken = userTokenVal; * _ = _globalRepository.SaveAll();*/ var fullToken = userTokenVal + "#" + hashedEmail; var emailVerificationLink = _authenticationRepository.GetUserEmailVerificationLink(fullToken); if (emailVerificationLink == null) { return(new ToRespond() { StatusCode = Helpers.ObjectNull, StatusMessage = "Email Verification Link Generation Error" }); } else { await dbTransaction.CommitAsync(); return(new ToRespond() { StatusCode = Helpers.Success, ObjectValue = _mapper.Map <SiwesCoordinatorResponse>(siwesCoordinator), StatusMessage = "Siwes Coordinator Created Successfully!!!" }); } } } return(new ToRespond() { StatusCode = Helpers.NotSucceeded, StatusMessage = "Can not Suceed" }); } return(new ToRespond() { StatusCode = Helpers.SaveError, StatusMessage = Helpers.StatusMessageSaveError }); }