public async Task <ActionResult> UpdateLecturer(int lecturerId, LecturerRequest lecturerRequest) { var result = await _lecturerRepository.UpdateLecturer(lecturerId, lecturerRequest); if (result.StatusCode == Helpers.Success) { return(StatusCode(StatusCodes.Status200OK, result)); } else { return(StatusCode(StatusCodes.Status400BadRequest, result)); } }
public async Task <ToRespond> CreateLecturer(LecturerRequest lecturerRequest) { if (lecturerRequest == null) { return(new ToRespond() { StatusCode = Helpers.ObjectNull, StatusMessage = Helpers.StatusMessageObjectNull }); } if (await LecturerExists(lecturerRequest.EmailAddress)) { return(new ToRespond() { StatusCode = Helpers.ObjectExists, StatusMessage = Helpers.StatusMessageObjectExists }); } var lecturer = new Lecturer { EmailAddress = lecturerRequest.EmailAddress, FirstName = lecturerRequest.FirstName, LastName = lecturerRequest.LastName, PhoneNumber = lecturerRequest.PhoneNumber, Department = lecturerRequest.Department, }; if (lecturerRequest.PictureUrl != null) { var result = _cloudinaryRepository.UploadFileToCloudinary(lecturerRequest.PictureUrl); var image = (RawUploadResult)result.ObjectValue; lecturer.PictureUrl = image.Uri.ToString(); } var dbTransaction = await _dataContext.Database.BeginTransactionAsync(); _globalRepository.Add(lecturer); 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 = lecturerRequest.EmailAddress, Email = lecturerRequest.EmailAddress, UserTypeId = lecturer.LecturerId, UserType = Helpers.Student }; var password = (new Generate()).RandomPassword(); var result = await _userManager.CreateAsync(user, password); if (result.Succeeded) { //ASSIGN STUDENT ROLE TO USER (Student) string LecturerTypeRole = Helpers.LecturerRole; var assignmentResult = await _userManager.AddToRoleAsync(user, LecturerTypeRole); if (assignmentResult.Succeeded) { //THEN UPDATE Student TABLE USERID COLUMN WITH NEWLY CREATED USER ID lecturer.UserId = user.Id; var LecturerUpdateResult = _globalRepository.Update(lecturer); if (!LecturerUpdateResult) { return(new ToRespond() { StatusCode = Helpers.NotSucceeded, StatusMessage = "Not Suceeded" }); } var LecturerUpdateSaveResult = await _globalRepository.SaveAll(); if (!LecturerUpdateSaveResult.HasValue) { return(new ToRespond() { StatusCode = Helpers.SaveError, StatusMessage = Helpers.StatusMessageSaveError }); } if (!LecturerUpdateSaveResult.Value) { return(new ToRespond() { StatusCode = Helpers.SaveNoRowAffected, StatusMessage = "Can not save Row affected" }); } var userTokenVal = await _userManager.GenerateEmailConfirmationTokenAsync(user); string hashedEmail = GetHashedEmail(user.Email); 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 <LecturerResponse>(lecturer), StatusMessage = "Lecturer Created Successfully!!!" }); } } } return(new ToRespond() { StatusCode = Helpers.NotSucceeded, StatusMessage = "Can not Suceed" }); } return(new ToRespond() { StatusCode = Helpers.SaveError, StatusMessage = Helpers.StatusMessageSaveError }); }
public async Task <ToRespond> UpdateLecturer(int lecturerId, LecturerRequest lecturerRequest) { var lecturer = await _dataContext.Lecturers.FindAsync(lecturerId); if (lecturer == null) { return(new ToRespond { StatusCode = Helpers.NotFound, StatusMessage = Helpers.StatusMessageNotFound }); } if (lecturerRequest == null) { return(new ToRespond { StatusCode = Helpers.ObjectNull, StatusMessage = Helpers.StatusMessageObjectNull }); } lecturer.EmailAddress = lecturerRequest.EmailAddress; lecturer.FirstName = lecturerRequest.FirstName; lecturer.LastName = lecturerRequest.LastName; lecturer.PhoneNumber = lecturerRequest.PhoneNumber; lecturer.Department = lecturerRequest.Department; if (lecturerRequest.PictureUrl != null) { var resultImage = _cloudinaryRepository.UploadFileToCloudinary(lecturerRequest.PictureUrl); var image = (RawUploadResult)resultImage.ObjectValue; lecturer.PictureUrl = image.Uri.ToString(); } _globalRepository.Update(lecturer); 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 <LecturerResponse>(lecturer), StatusMessage = "Lecturer Updated Successfully!!!" }); } return(new ToRespond() { StatusCode = Helpers.SaveError, StatusMessage = "Can not update Lecturer" }); }