/// <summary> /// درج کارتابل /// Savechange /// انجام نمی شود /// </summary> /// <returns></returns> private bool InsertCartable(CartableStatus cartableStatus, long userId, long personIdOnBehalfof, long requestId, long postuserId, int rowNumber, bool referTo, string description) { // بررسی این که درخواست معتبر می باشد یا خیر var requestIsValid = _requestRepository.Where(s => s.Id == requestId && (rowNumber <= 1 || s.RequestStatus != RequestStatus.Returned)).Include(i => i.Person.Profile) .Include(i => i.Person.Student).FirstOrDefault(); if (requestIsValid == null) { return(false); } var newCartable = new Cartable { RequestId = requestId, PersonId = userId, PostId = postuserId, RowNumber = rowNumber, ReferTo = referTo, Series = _cartableRepository.Where(c => c.RequestId == requestId && c.RowNumber == 1).Count() + (rowNumber == 1 ? 1 : 0), CartableStatus = cartableStatus, Description = description, PersonIdOnBehalfof = personIdOnBehalfof, CartableValidation = cartableStatus == CartableStatus.Returned ? CartableValidation.Invalid : CartableValidation.Valid// کلا در خواست ها برگشی در کارتابل نا معتبر باید باشد- در جدول کارتابل درخواست معتبر و برگشت زده نداریم }; //_cartableRepository.AddOrUpdate(c => new { c.RequestId, c.PostId, c.CartableStatus, c.CartableValidation, c.RowNumber, c.Series }, newCartable); _cartableRepository.Add(newCartable); if (cartableStatus == CartableStatus.Verdict) { //if (VoteStatus == VoteStatus.Temporary) // cartableStatus = CartableStatus.Confirmed; //else //{ if (requestIsValid.RequestType == RequestType.Comision) { if (referTo) { cartableStatus = CartableStatus.Confirmed; } } else { cartableStatus = CartableStatus.Confirmed; // چون شورا است باید درخواست در جریان شود } //} } requestIsValid.RequestStatus = new Request().ConvertCartableStatustoRequestStatus(cartableStatus); _requestRepository.Update(requestIsValid); return(true); }
public RequestStatus ConvertCartableStatustoRequestStatus(CartableStatus cartableStatus) { switch (cartableStatus) { case CartableStatus.Confirmed: return(RequestStatus.InFlow); case CartableStatus.Returned: return(RequestStatus.Returned); case CartableStatus.Verdict: return(RequestStatus.Verdict); case CartableStatus.AgreetoVote: return(RequestStatus.AgreetoVote); case CartableStatus.OppositiontoVote: return(RequestStatus.OppositiontoVote); default: return(RequestStatus.Waiting); } }