// GET: Requests/Edit/5 public ActionResult AllRequests(string name, State?state, string date1, string date2) { ViewBag.CurrentDate = GetPersianTime.GetPersainDateTime()[0]; //droplist options var Users = repository.GetallUsersNames(); SelectList list = new SelectList(Users); ViewBag.AllUsers = list; List <Request> requests = repository.GetRequestsByNameAndState(name, state); if (!string.IsNullOrEmpty(date1) && !string.IsNullOrEmpty(date2)) { DateTime firstTime = TimeSetting.SetTime(date1); DateTime secondTime = TimeSetting.SetTime(date2); requests = requests.Where(w => (w.RequestTime.Year >= firstTime.Year && w.RequestTime.Month >= firstTime.Month && w.RequestTime.Day >= firstTime.Day) && (w.RequestTime.Year <= secondTime.Year && w.RequestTime.Month <= secondTime.Month && w.RequestTime.Day <= secondTime.Day)).ToList(); } requests = requests.OrderByDescending(s => s.UserID).ThenBy(t => t.RequestTime).ToList(); var result = SetRequestView.SetRequest(requests); ViewBag.AllWorkingTime = AllWorkTimeCalculation.AllWorkTimeSum(result); return(View(result)); }
public ActionResult Create([Bind(Include = "RequestID,Type,Time,Date")] Request request) { ViewBag.Message = string.Empty; //if (ModelState.IsValid) //{ if (string.IsNullOrEmpty(request.Time)) { request.Time = GetPersianTime.GetPersainDateTime()[1]; } if (string.IsNullOrEmpty(request.Date)) { request.Date = GetPersianTime.GetPersainDateTime()[0]; } request.RequestTime = TimeSetting.SetTime(request.Time, request.Date); //checks if someone insert two request with same type in a particular date. var Res = repository.GetRequestsByDate(request.RequestTime, User.Identity.GetUserId()); foreach (var index in Res) { if (index.Type == request.Type && index.State != State.rejected) { ViewBag.Message = "در یک تاریخ نمی توانید بیش از یک ورود یا خروج ثبت کنید!"; return(View(request)); } } request.State = State.Processing; repository.AddRequest(request, User.Identity.GetUserId()); repository.Save(); return(RedirectToAction("Index")); //} //return View(request); }
// GET: Requests public ActionResult Index(string date1, string date2, string ID, State?requestType) { IEnumerable <Request> requests = new List <Request>(); //get current date in persian format ViewBag.CurrentDate = GetPersianTime.GetPersainDateTime()[0]; string userid = string.Empty; if (ID == null) { userid = User.Identity.GetUserId(); } else { userid = ID; } if (!string.IsNullOrEmpty(date1) && !string.IsNullOrEmpty(date2)) { DateTime firstTime = TimeSetting.SetTime(date1); DateTime secondTime = TimeSetting.SetTime(date2); requests = repository.GetRequestsByDatePeriod(firstTime, secondTime, userid); } else { requests = repository.GetRequestByUserID(userid); } requests = requests.OrderBy(s => s.RequestTime); var requestViews = SetRequestView.SetRequest(requests); ViewBag.AllWorkingTime = AllWorkTimeCalculation.AllWorkTimeSum(requestViews); ////sorting by date //if (sortOrder == "Date") // requestViews = requestViews.OrderByDescending(o => o.Date).ThenBy(o => o.ArrivalTime).ToList(); //else if (sortOrder == "WorkingTime") // requestViews = requestViews.OrderByDescending(o => o.WorkingTime).ThenBy(o => o.Name).ToList(); //else //requestViews = requestViews.OrderBy(o => o.Name).ThenBy(o => o.Date).ToList(); if (requestType == State.accepted) { requestViews = requestViews.Where(w => w.State == State.accepted).ToList(); } else if (requestType == State.rejected) { requestViews = requestViews.Where(w => w.State == State.rejected).ToList(); } else if (requestType == State.Processing) { requestViews = requestViews.Where(w => w.State == State.Processing).ToList(); } else { requestViews = requestViews.Where(w => w.State == State.accepted).ToList(); } return(View(requestViews)); }