//public Tuple<bool, string, long> UpdateCouncilRequest(CouncilModel councilModel) //{ // try // { // var person = // _personRepository.Where(s => s.Id == councilModel.PersonId).Include(i => i.Profile) // .Include(i => i.Student).FirstOrDefault(); // person.Student.StudentNumber = councilModel.StudentNumber; // person.Student.FieldofStudyId = councilModel.FieldofStudyId; // person.Student.Grade = councilModel.Grade; // person.Student.MilitaryServiceStatus = councilModel.MilitaryServiceStatus; // person.Profile.Name = councilModel.Name; // person.Profile.Family = councilModel.Family; // person.Profile.NationalCode = councilModel.NationalCode; // _studentRepository.Update(person.Student); // _profileRepository.Update(person.Profile); // //واکشی درخواست اگر وجود دارد // var request = _requestRepository.Where(i => i.Id == councilModel.Id).Include(i => i.Council) // .Include(i => i.MemberMaster).FirstOrDefault() ?? new Request(); // request.NumberofRemainingUnits = councilModel.NumberofRemainingUnits; // request.NumberofSpentUnits = councilModel.NumberofSpentUnits; // request.Description = councilModel.Description; // request.MemberMaster = _memberMasterRepository.Where(d => d.RequestType == RequestType.Council) // .OrderByDescending(p => p.Id).FirstOrDefault(); // var x = new PersianCalendar(); // councilModel.Date = // x.ToDateTime(councilModel.Date.Year, councilModel.Date.Month, councilModel.Date.Day, 0, 0, 0, 0, 0); // //درج درخواست به همراه شورا // request.Council.CouncilNumber = councilModel.CouncilNumber; // request.Council.Date = councilModel.Date; // request.Council.Description = councilModel.Description; // request.Council.ProblemText = councilModel.ProblemsCouncil; // _requestRepository.Update(request); // _unitOfWork.SaveChanges(); // return new Tuple<bool, string, long>(true, "عملیات ثبت به درستی انجام شد", request.Id); // } // catch (Exception exception) // { // return new Tuple<bool, string, long>(false, "خطا در ثبت درخواست", 0); // } //} /// <summary> /// این متد اطلاعات مربوط به کمیسیون و پروفایل و دانشجویی یک شخص خاص را می دهد /// </summary> /// <param name="councilId"></param> /// <returns></returns> public Tuple <bool, string, CouncilModel> FindInfoCouncil(long councilId) { try { var councilModel = (from p in _requestRepository.Where(c => c.Id == councilId && c.RequestType == RequestType.Council) //.Include(i => i.Council).Include(i => i.Person).Include(i => i.Person.Student).Include(i => i.Person.Profile) select new CouncilModel { Id = councilId, NumberofRemainingUnits = p.NumberofRemainingUnits, NumberofSpentUnits = p.NumberofSpentUnits, RequestType = p.RequestType, RequestStatus = p.RequestStatus, CouncilNumber = p.Council.CouncilNumber, Date = p.Council.Date, Description = p.Council.Description, ProblemsCouncil = p.Council.ProblemText, PersonId = p.PersonId, NameFamily = p.Person.Profile.Name + " " + p.Person.Profile.Family, NationalCode = p.Person.Profile.NationalCode, StudentNumber = p.Person.Student.StudentNumber, FieldofStudyId = p.Person.Student.FieldofStudyId, FieldofStudy = p.Person.Student.FieldofStudy.OrganizationStructureName.Name, Gender = p.Person.Profile.Gender, Grade = p.Person.Student.Grade, MilitaryServiceStatus = p.Person.Student.MilitaryServiceStatus, NumberofVotesCouncil = 0 //p.Requests.Count(r => r.Council != null) }).FirstOrDefault(); if (councilModel == null) { return(new Tuple <bool, string, CouncilModel>(false, "رکورد کمیسیون نظر یافت نشد!", null)); } councilModel.NumberofVotesCouncil = _councilRepository.Where(c => c.Request.PersonId == councilModel.PersonId).Count(); councilModel.GenderString = councilModel.Gender.GetDescription(); councilModel.GradeString = councilModel.Grade.GetDescription(); councilModel.MilitaryServiceStatusString = councilModel.MilitaryServiceStatus.GetDescription(); return(new Tuple <bool, string, CouncilModel>(true, "", councilModel)); } catch (Exception e) { return(new Tuple <bool, string, CouncilModel>(false, "خطا در انجام عملیات!", null)); } }
public Tuple <bool, string> VotePermanent(VoteModel voteModel) { try { //var request = _requestRepository.Where(r => r.Id == voteModel.RequestId).Include(i => i.Person) // .Include(i => i.Person.Profile).Include(i => i.Person.Student).FirstOrDefault(); //ابتدا در کارتابل ذخیره شود var valid = InsertCartable(CartableStatus.Verdict, voteModel.PersonId, voteModel.PersonId, voteModel.RequestId, voteModel.PostId, voteModel.RowNumber, (voteModel.RequestType == RequestType.Council || voteModel.ReferTo), voteModel.VoteDescription); if (!valid) { return(new Tuple <bool, string>(false, "درخواست مورد نظر در جریان نمی باشد و صدور رای امکان پذیر نیست")); } // رای صادر شود _voteRepository.AddOrUpdate(v => v.RequestId, new Vote { RequestId = voteModel.RequestId, PersonId = voteModel.PersonId, PostId = voteModel.PostId, VoteText = voteModel.VoteText, ReferText = voteModel.VoteDescription, VoteType = voteModel.VoteType, VoteStatus = voteModel.VoteStatus, DateVote = voteModel.DateVote.ToMiladiDate() }); //هر کمیسیون یک شماره جلسه دارد که باید برای هر کمیسیون شماره ردیفی که در چاپ می آید مشخص شود // در واقه با ین شماره می توان ردیف کمیسیون را فهمید if (voteModel.RequestType == RequestType.Comision) { var commission = _commissionRepository.Find(c => c.RequestId == voteModel.RequestId); if (commission != null) { commission.RowNumber = _commissionRepository.Where(c => c.CommissionNumber == commission.CommissionNumber) .Select(s => s.RowNumber).DefaultIfEmpty(0).Max() + 1; // اول شماره کمیسیون در متد ایجاد درخواست بود // بر اساس تغییرات خواسته شده شماره کیسیون باید در مرحله صدور رای بیاید commission.CommissionNumber = voteModel.DetailRequestModel.CommissionNumber; _commissionRepository.Update(commission); } } else { var council = _councilRepository.Find(c => c.RequestId == voteModel.RequestId); if (council != null) { council.RowNumber = _councilRepository.Where(c => c.CouncilNumber == council.CouncilNumber) .Select(s => s.RowNumber).DefaultIfEmpty(0).Max() + 1; // این شماره CommissionNumber // DetailRequestModel در مدل // برای کمیسیون و شورای یکی می باشد council.CouncilNumber = voteModel.DetailRequestModel.CommissionNumber; _councilRepository.Update(council); } } _unitOfWork.SaveChanges(); return(new Tuple <bool, string>(true, "صدور رای با موفقیت انجام شده است")); } catch (Exception exception) { return(new Tuple <bool, string>(false, "عملیات با مشکل مواجه شده است")); } }