public async Task <ActionResult> Edit(CompetitorViewModel competitorModel) { var selectedCompetitor = await _competitorService.Find(competitorModel.Id); var userId = Convert.ToInt32(User.Identity.Name); if (selectedCompetitor.IsApproved == null || selectedCompetitor.IsApproved == true) { var canEdit = await _participationService.CanEditPerson(selectedCompetitor.ParticipateId, userId); if (!canEdit) { ModelState.AddModelError("", "شما امکان ویرایش اطلاعات بازیکن را ندارید."); return(this.JsonValidationErrors()); } } else { var canEdit = await _participationService.CanEditRejectedPerson(selectedCompetitor.ParticipateId, userId); if (!canEdit) { ModelState.AddModelError("", "مهلت ویرایش اطلاعات بازیکن به پایان رسیده است."); return(this.JsonValidationErrors()); } } var tmpPath = Server.MapPath("~/App_Data/tmp/"); var fullName = string.Format("{0}-{1}", competitorModel.FirstName, competitorModel.LastName).ApplyCorrectYeKe(); if (selectedCompetitor.UserImage != competitorModel.UserImage) { var userImagePath = Server.MapPath("~/App_Data/User_Image/"); await CopyFileAsync(tmpPath + competitorModel.UserImage, userImagePath + string.Format("{0}-{1}", fullName, competitorModel.UserImage)); System.IO.File.Delete(userImagePath + selectedCompetitor.UserImage); selectedCompetitor.UserImage = string.Format("{0}-{1}", fullName, competitorModel.UserImage); } if (selectedCompetitor.StudentCertificateImage != competitorModel.StudentCertificateImage) { var studentCertificateImagePath = Server.MapPath("~/App_Data/Student_Certificate_Image/"); await CopyFileAsync(tmpPath + competitorModel.StudentCertificateImage, studentCertificateImagePath + string.Format("{0}-{1}", fullName, competitorModel.StudentCertificateImage)); System.IO.File.Delete(studentCertificateImagePath + selectedCompetitor.StudentCertificateImage); selectedCompetitor.StudentCertificateImage = string.Format("{0}-{1}", fullName, competitorModel.StudentCertificateImage); } if (selectedCompetitor.InsuranceImage != competitorModel.InsuranceImage) { var insuranceImagePath = Server.MapPath("~/App_Data/Insurance_Image/"); await CopyFileAsync(tmpPath + competitorModel.InsuranceImage, insuranceImagePath + string.Format("{0}-{1}", fullName, competitorModel.InsuranceImage)); System.IO.File.Delete(insuranceImagePath + selectedCompetitor.InsuranceImage); selectedCompetitor.InsuranceImage = string.Format("{0}-{1}", fullName, competitorModel.InsuranceImage); } if (selectedCompetitor.AzmoonConfirmationImage != competitorModel.AzmoonConfirmationImage) { var azmoonImagePath = Server.MapPath("~/App_Data/Azmoon_Confirmation_Image/"); await CopyFileAsync(tmpPath + competitorModel.AzmoonConfirmationImage, azmoonImagePath + string.Format("{0}-{1}", fullName, competitorModel.AzmoonConfirmationImage)); System.IO.File.Delete(azmoonImagePath + selectedCompetitor.AzmoonConfirmationImage); selectedCompetitor.AzmoonConfirmationImage = string.Format("{0}-{1}", fullName, competitorModel.AzmoonConfirmationImage); } selectedCompetitor.FirstName = competitorModel.FirstName; selectedCompetitor.LastName = competitorModel.LastName; selectedCompetitor.InsuranceEndDate = competitorModel.InsuranceEndDate; selectedCompetitor.StudyFieldId = competitorModel.StudyFieldId; selectedCompetitor.StudyFieldDegreeId = competitorModel.StudyFieldDegreeId; selectedCompetitor.NationalCode = competitorModel.NationalCode; selectedCompetitor.BirthDate = competitorModel.BirthDate; selectedCompetitor.FatherName = competitorModel.FatherName; selectedCompetitor.Email = competitorModel.Email; selectedCompetitor.MobileNumber = competitorModel.MobileNumber; selectedCompetitor.StudentNumber = competitorModel.StudentNumber; selectedCompetitor.Weight = competitorModel.Weight; selectedCompetitor.Height = competitorModel.Height; selectedCompetitor.PhoneNumber = competitorModel.PhoneNumber; selectedCompetitor.InsuranceNumber = competitorModel.InsuranceNumber; selectedCompetitor.IsApproved = null; await _dbContext.SaveChangesAsync(); return(new HttpStatusCodeResult(HttpStatusCode.OK)); }