public StationeryRequestApiModel SelectedStationeryRequest(String rid)
        {
            var resultT = from x in context.TransactionDetail
                          where x.TransactionRef == rid
                          select new RequestTransactionDetailApiModel {
                TransactionId  = x.TransactionId,
                TransactionRef = rid,
                ItemId         = x.ItemId,
                Quantity       = x.Quantity,
                UnitPrice      = x.UnitPrice
            };

            //var resultS = from x in context.StationeryRequest
            //              where x.RequestId == rid
            //              select x;

            //StationeryRequest ss = resultS.First();
            StationeryRequest ss = RetrieveReq(rid);
            List <RequestTransactionDetailApiModel> tt = resultT.ToList();

            StationeryRequestApiModel stModel = new StationeryRequestApiModel();

            stModel.RequestId   = rid;
            stModel.RequestedBy = ss.AspNetUsers1.EmployeeName;
            stModel.RequestDate = ss.RequestDate;
            stModel.Status      = ss.Status;
            stModel.requestTransactionDetailApiModels = tt;

            return(stModel);
        }
        public bool RejectRequst([FromBody] StationeryRequestApiModel req)
        {
            GlobalClass gc = new GlobalClass();

            //return gc.ApproveReq(req);
            return(gc.RejectReq(req));
        }
        //Approve Req
        public bool ApproveReq(StationeryRequestApiModel req)
        {
            string            depid             = GetUserDepId(req.Userid);
            var               dep               = from d in context.Department where d.DepartmentId == depid select d;
            Department        department        = dep.FirstOrDefault();
            StationeryRequest stationeryRequest = RetrieveReq(req.RequestId);

            if (stationeryRequest != null)
            {
                stationeryRequest.ApprovedBy = req.Userid;
                stationeryRequest.Status     = "Pending Disbursement";
                DateTime nextMonday = DateTime.Today.AddDays(7 - ((int)DateTime.Today.DayOfWeek - (int)DayOfWeek.Monday));
                DateTime nextAD     = (DateTime)department.NextAvailableDate;
                //S1:postpone has expired so if the day is before friday,collection date should be set to next monday
                if (DateTime.Today > nextAD && DateTime.Now.DayOfWeek < DayOfWeek.Friday)
                {
                    stationeryRequest.CollectionDate = nextMonday;
                }

                //S2: postpone has expired,if request is raised in Friday or after Friday,date should be set to next next monday
                if (DateTime.Today > nextAD && DateTime.Now.DayOfWeek > DayOfWeek.Friday)
                {
                    stationeryRequest.CollectionDate = nextMonday.AddDays(7);
                }

                //S3:postpone is avaliable so if the day is before friday,collection date should be set to postpone date
                if (DateTime.Today < nextAD.AddDays(-3))
                {
                    stationeryRequest.CollectionDate = department.NextAvailableDate;
                }

                //S4:postpone is avaliable so if the day is before friday,collection date should be set to postpone date +7
                if (nextAD.AddDays(-3) <= DateTime.Today && DateTime.Today < nextAD)
                {
                    stationeryRequest.CollectionDate = nextAD.AddDays(7);
                }
                context.SaveChanges();

                #region SendEmail
                StationeryRequest ss = RetrieveReq(req.RequestId);
                string            recipientEmail, subject, content;
                //recipientEmail =ss.AspNetUsers1.Email;
                recipientEmail = "*****@*****.**";
                subject        = " Request approved!";
                content        = "Your Request was approved";
                Email.Send(recipientEmail, subject, content);
                #endregion

                return(true);
            }

            return(false);
        }
        //Reject Req
        public bool RejectReq(StationeryRequestApiModel req)
        {
            StationeryRequest stationeryRequest = RetrieveReq(req.RequestId);

            if (stationeryRequest != null)
            {
                stationeryRequest.ApprovedBy = req.ApprovedBy;
                stationeryRequest.Status     = "Rejected";
                context.SaveChanges();
                #region SendEmail
                StationeryRequest ss = RetrieveReq(req.RequestId);
                string            recipientEmail, subject, content;
                //recipientEmail =ss.AspNetUsers1.Email;
                recipientEmail = "*****@*****.**";
                subject        = " Request rejected!";
                content        = "Unfortunately, your Request was rejected";
                Email.Send(recipientEmail, subject, content);
                #endregion
                return(true);
            }

            return(false);
        }