示例#1
0
        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));
            }
        }
示例#2
0
        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
            });
        }
示例#3
0
        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"
            });
        }