コード例 #1
0
        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));
        }