public Settings GetSettings() { try { var s = _settingsRepository.All().Include(x => x.University).FirstOrDefault(); return(s); } catch (Exception ex) { return(null); } }
public Tuple <bool, string, List <CartableViewModel>, ArgumentException> GetListCartable(long userId) { try { var ordinal1 = _settingsRepository.All().Select(s => s.Ordinal).FirstOrDefault(); var ordinal = (int)ordinal1; //برای مشخص کردن حالت ترتیبی یا غیر ترتیبی کارتابل var signers = _signerRepository.All().Include(i => i.Post).OrderBy(o => o.RowNumber); // لیست همه امضاکنندگان کمیسیون و شورا به ترتیب var lastCommissionSigner = signers.Where(w => w.RequestType == RequestType.Comision).Select(s => s.RowNumber).ToList().LastOrDefault(); var lastCouncilSigner = signers.Where(w => w.RequestType == RequestType.Council).Select(s => s.RowNumber).ToList().LastOrDefault(); var postsofPerson = _postPersonRepository.Where(p => p.PersonId == userId && p.Post.Signers.Any(s => s.RowNumber != 1)) .Include(i => i.Post).Include(i => i.Post.Signers).ToList(); // همه سمت ها به همراه رکوردهای امضاکننده کمیسیون و شورا مربوط به یک شخص postsofPerson.AddRange(_userPostRepository.Where(p => p.UserId == userId && p.Post.Signers.Any(s => s.RowNumber != 1)) .Include(i => i.Post).Include(i => i.Post.Signers).ToList() .Select(s => new PostPerson { Post = s.Post, BranchProvinceId = s.BranchProvinceId, CentralOrganizationId = s.CentralOrganizationId, CollegeId = s.CollegeId, EducationalGroupId = s.EducationalGroupId, PersonId = s.UserId, PostId = s.PostId, UniversityId = s.UniversityId //Person = s.User.Person }).ToList()); // همه سمت ها به همراه رکوردهای امضاکننده کمیسیون و شورا مربوط به یک شخص var postsofPersonCommission = postsofPerson.Where(p => p.Post.Signers.Any(s => s.RequestType == RequestType.Comision)).ToList(); // همه سمت ها به همراه رکوردهای امضاکننده کمیسیون مربوط به یک شخص var postsofPersonCouncil = postsofPerson.Where(p => p.Post.Signers.Any(s => s.RequestType == RequestType.Council)).ToList(); // همه سمت ها به همراه رکوردهای امضاکننده شورا مربوط به یک شخص var listPostIdCommission = postsofPersonCommission.Select(s => s.PostId).ToList(); // آی دی سمت های امضاکننده مربوط به کمیسیون شخص ورودی var listPostIdCouncil = postsofPersonCouncil.Select(s => s.PostId).ToList(); // آی دی سمت های امضاکننده مربوط به شورا شخص ورودی //////var listRowNumberComision = (from postPerson in postsofPersonCommission ////// from signer in postPerson.Post.Signers.Where(s => s.RequestType == RequestType.Comision) ////// select (int)signer.RowNumber).ToList(); // لیست شماره ردیف امضاکننده کمیسیون مربوط به شخص ورودی //////var listRowNumberCouncil = (from postPerson in postsofPersonCouncil ////// from signer in postPerson.Post.Signers.Where(s => s.RequestType == RequestType.Council) ////// select (int)signer.RowNumber).ToList(); // لیست شماره ردیف امضاکننده شورا مربوط به شخص ورودی List <long> listFieldofStudy; var allFieldofStudy = _fieldofStudyRepository.All(); var request = new List <CartableViewModel>(); foreach (var item in postsofPerson) { var field = allFieldofStudy; if (item.UniversityId != null) { field = field.Where(f => f.EducationalGroup.College.UniversityId == item.UniversityId); } else if (item.CollegeId != null) { field = field.Where(f => f.EducationalGroup.CollegeId == item.CollegeId); } else { field = field.Where(f => f.EducationalGroupId == item.EducationalGroupId); } listFieldofStudy = field.Select(s => s.Id).ToList(); foreach (var signer in item.Post.Signers) { request.AddRange(_requestRepository.Where(x => (x.RequestStatus == RequestStatus.InFlow && x.RequestType == signer.RequestType && x.Archive == null) && // در خواست درجریان (x.Cartables.Any(c => c.CartableValidation == CartableValidation.Valid)) && // در کارتابل رکورد معتبر از این درخواست وجود داشته باشد (listFieldofStudy.Any(l => l.Equals(x.Person.Student.FieldofStudyId))) && //درخواست در لیست رشته های تحصیلی کمیسیون مربوط به شخص ورودی باشد (!x.Cartables.Any(c => c.CartableValidation == CartableValidation.Valid && c.PostId == signer.PostId && c.RowNumber == signer.RowNumber)) && // حداقل یک مورد از سمت های شخص در کارتابل رکورد معتبر نداشته باشد(یعنی امضا نداشته باشد) // یا رای موقت وجود داشته باشد ((ordinal != (int)Ordinal.Ordinal && signer.RowNumber <= 5) || (x.Cartables.Any(c => c.CartableValidation == CartableValidation.Valid && c.RowNumber == signer.RowNumber - 1))) //// // در حالت قبلی مورد استفاده می شد که که در صدور رای ارجا به داشته ایم //// ((ordinal != (int)Ordinal.Ordinal && signer.RowNumber <= 5) || ////(x.Cartables.Any(c => c.CartableValidation == //// CartableValidation.Valid && c.RowNumber == signer.RowNumber - 1 && c.ReferTo) || //// (x.RequestType == RequestType.Council && signer.RowNumber == lastCouncilSigner && //// x.Cartables.Any(c => c.CartableValidation == //// CartableValidation.Valid && c.RowNumber == signer.RowNumber - 2 && !c.ReferTo)))) ////// &&// این مرحله قبلا برای مشمول بررسی می شد //////(signer.RowNumber != (x.RequestType == RequestType.Comision ////// ? lastCommissionSigners : lastCouncilSigners) || ////////مشخص میکند که درخواست در مرحله آخر میباشد یا خیر //////(x.Vote != null && (x.RequestType != RequestType.Comision || ////// (x.Person.Profile.Gender == Gender.Male && x.Person.Student.MilitaryServiceStatus == ////// MilitaryServiceStatus.Included)))) ) // اگر درخواست در مرحله آخر باشد باید شرط صدور رای بررسی شود ، همچنین اگر کمیسیون باشد باید مشمول خدمت بررسی شود .Include(i => i.Vote).Include(i => i.Commission).Include(i => i.Council) .Include(i => i.Person).Include(i => i.Person.Profile).Include(i => i.Person.Student) .Include(i => i.Person.Student.FieldofStudy.OrganizationStructureName) .Select(req => new CartableViewModel { Request = req, Person = req.Person, Profile = req.Person.Profile, Student = req.Person.Student, Council = req.Council, OrganizationStructureName = req.Person.Student.FieldofStudy.OrganizationStructureName, Commission = req.Commission, //این لیست کارتابل و لیست امضا کنندگان به دلیل اشکالی که در حالت غیر ترتیبی داشت فعلا غیر فعال شده است //مثلا اگر شخصی هم سمت مدیر گروه و معاون آموزشی و اختیارات مدیر کل داشته باشد // به طوری که درخواست ربطی به مدیر گروه نداشته باشد یعنی زیر مجموعه آن نباشد // در کارتابل درخواست در مرحله مدیر گروه نشان داده می شود که // باید مدیر کل نشان داده شود //Cartables = // req.Cartables.Where(c => c.CartableValidation == CartableValidation.Valid).ToList(), //Signers = signers.Where(sel => sel.RequestType == req.RequestType && // (req.RequestType == RequestType.Comision // ? (listPostIdCommission.Except(req.Cartables.Where( // c => c.CartableValidation == CartableValidation.Valid) // .Select(s => s.PostId)).Any(l => l.Equals(sel.PostId))) // : (listPostIdCouncil.Except( // req.Cartables.Where( // c => c.CartableValidation == CartableValidation.Valid) // .Select(s => s.PostId)).Any(l => l.Equals(sel.PostId))))) // .ToList(), Signers = signers.Where(s => s.Id == signer.Id).ToList(), Signer = signers.FirstOrDefault(s => s.Id == signer.Id), LastCommissionSigner = lastCommissionSigner, LastCouncilSigner = lastCouncilSigner }).ToList()); } //لیست رشته های تحصیلی که در زیر مجموعه سمت های کمیسیون مربوط به شخص ورودی وجود دارد } return(new Tuple <bool, string, List <CartableViewModel>, ArgumentException>(true, "", request.OrderBy(i => i.Signer.RowNumber).DistinctBy(d => d.Request.Id).ToList(), null)); } catch (Exception exception) { return(new Tuple <bool, string, List <CartableViewModel>, ArgumentException>(false, "", null, new ArgumentException("", exception))); } }
public IEnumerable <Settings> GetAllSettings() { return(_settingsRepository.All()); }