Beispiel #1
0
        //Update capacity
        public bool UpdateCapacity(AcceptedRequest acceptedRequest)
        {
            bool status = false;

            try
            {
                LaundryRequest ownerRequest = (from lr in _context.LaundryRequest
                                               where lr.UserId == acceptedRequest.OwnerId
                                               select lr).FirstOrDefault();
                LaundryRequest washerRequest = (from lr in _context.LaundryRequest
                                                where lr.UserId == acceptedRequest.WasherId
                                                select lr).FirstOrDefault();
                int newCapacity = 0;
                if (ownerRequest.Weight >= washerRequest.Weight)
                {
                    newCapacity         = ownerRequest.Weight - washerRequest.Weight;
                    ownerRequest.Weight = newCapacity;
                    _context.SaveChanges();
                    if (newCapacity == 0)
                    {
                        acceptedRequest.Status = "Active";
                        status = StartWashCycle(acceptedRequest.AcceptedRequestId);
                    }
                }
            }
            catch (Exception ex)
            {
                status = false;
            }
            return(status);
        }
Beispiel #2
0
        //Update wash status
        public bool UpdateWashStatus(int acceptedRequestId)
        {
            bool status = false;

            try
            {
                AcceptedRequest acceptedRequest = new AcceptedRequest();
                acceptedRequest = (from ar in _context.AcceptedRequest
                                   where ar.AcceptedRequestId == acceptedRequestId
                                   select ar).FirstOrDefault();
                if (acceptedRequest != null)
                {
                    //Update status as completed
                    acceptedRequest.Status = "Complete";

                    //Debit transaction
                    Transaction debitTransaction = new Transaction();
                    debitTransaction.UserId = acceptedRequest.WasherId;
                    int?           washerReqId   = acceptedRequest.WasherRequestId;
                    LaundryRequest washerRequest = (from lr in _context.LaundryRequest
                                                    where lr.RequestId == washerReqId
                                                    select lr).FirstOrDefault();
                    debitTransaction.Laundrocash         = washerRequest.Weight;
                    debitTransaction.TransactionType     = "D";
                    debitTransaction.Message             = "Debited successfully";
                    debitTransaction.TransactionDateTime = DateTime.Now;

                    //Credit transaction
                    Transaction creditTransaction = new Transaction();
                    creditTransaction.UserId = acceptedRequest.OwnerId;
                    int?           ownerReqId   = acceptedRequest.OwnerRequestId;
                    LaundryRequest ownerRequest = (from lr in _context.LaundryRequest
                                                   where lr.RequestId == ownerReqId
                                                   select lr).FirstOrDefault();
                    creditTransaction.Laundrocash         = ownerRequest.Weight;
                    creditTransaction.TransactionType     = "C";
                    creditTransaction.Message             = "Credited successfully";
                    creditTransaction.TransactionDateTime = DateTime.Now;

                    //Add transactions
                    _context.Transaction.Add(debitTransaction);
                    _context.Transaction.Add(creditTransaction);

                    //Update request status as Inactive
                    washerRequest.Status = "Inactive";
                    ownerRequest.Status  = "Inactive";

                    //Save changes
                    _context.SaveChanges();
                    status = true;
                }
            }
            catch (Exception ex)
            {
                status = false;
            }
            return(status);
        }
Beispiel #3
0
        public JsonResult RaiseRequest(LaundryRequest laundryRequest)
        {
            int status = 0;

            try
            {
                status = rep.RaiseRequest(_mapper.Map <LaundryRequest>(laundryRequest));
            }
            catch (Exception ex)
            {
                status = 0;
            }
            return(Json(status));
        }
Beispiel #4
0
 public JsonResult GetUserLaundryInfo(int requestId)
 {
     Models.LaundryRequest laundryRequest = new Models.LaundryRequest();
     try
     {
         LaundryRequest laundries = rep.GetUserLaundryInfo(requestId);
         if (laundries != null)
         {
             laundryRequest = _mapper.Map <Models.LaundryRequest>(laundries);
         }
     }
     catch (Exception ex)
     {
         laundryRequest = null;
     }
     return(Json(laundryRequest));
 }
Beispiel #5
0
        //Raising a new request
        public int RaiseRequest(LaundryRequest laundryRequest)
        {
            int status = 0;

            try
            {
                laundryRequest.Status = "Inactive";
                _context.LaundryRequest.Add(laundryRequest);
                _context.SaveChanges();
                MatchRequests(laundryRequest);
                status = 1;
            }
            catch (Exception ex)
            {
                status = 0;
            }
            return(status);
        }
Beispiel #6
0
 public async Task <IHttpActionResult> RequestGetCloth(RequestClothBindingModel model)
 {
     try
     {
         var Response = new LaundryRequest();
         using (DunkeyContext ctx = new DunkeyContext())
         {
             var TodayDate    = DateTime.Today.Day;
             var checkRequest = ctx.LaundryRequest.FirstOrDefault(x => x.User_Id == model.User_Id && x.Store_Id == model.Store_Id && x.RequestDate.Day == TodayDate);
             if (checkRequest == null)
             {
                 LaundryRequest Request = new LaundryRequest
                 {
                     User_Id     = model.User_Id,
                     Store_Id    = model.Store_Id,
                     Name        = "Get Cloth Request",
                     RequestDate = DateTime.Now,
                     isDeleted   = false,
                     Status      = Convert.ToInt16(Global.ClothRequestTypes.Pending)
                 };
                 ctx.LaundryRequest.Add(Request);
                 ctx.SaveChanges();
             }
             else
             {
                 return(Ok(new CustomResponse <Error> {
                     Message = "Conflict", StatusCode = (int)HttpStatusCode.Conflict, Result = new Error {
                         ErrorMessage = "You already requested to Get Cloths for today."
                     }
                 }));
             }
         }
         return(Ok(new CustomResponse <LaundryRequest> {
             Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = Response
         }));
     }
     catch (Exception ex)
     {
         return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
     }
 }
Beispiel #7
0
        //Match requests
        public void MatchRequests(LaundryRequest laundryRequest)
        {
            List <LaundryRequest> laundryRequests = new List <LaundryRequest>();
            MatchedRequest        matchedRequest;

            try
            {
                if (laundryRequest.WashingMachine == true)
                {
                    laundryRequests = (from lr in _context.LaundryRequest
                                       where lr.Status.ToLower() == "Inactive" &&
                                       lr.WashingMachine == false
                                       select lr).ToList();
                }
                else
                {
                    laundryRequests = (from lr in _context.LaundryRequest
                                       where lr.Status.ToLower() == "Inactive" &&
                                       lr.WashingMachine == true
                                       select lr).ToList();
                }

                if (laundryRequests.Any())
                {
                    foreach (var request in laundryRequests)
                    {
                        if (request.UserId == laundryRequest.UserId)
                        {
                            continue;
                        }
                        if (laundryRequest.WhitesOnly == request.WhitesOnly &&
                            laundryRequest.UnderGarmentsOnly == request.UnderGarmentsOnly &&
                            laundryRequest.GarmentsOnly == request.GarmentsOnly &&
                            laundryRequest.DenimsOrTrousersOnly == request.DenimsOrTrousersOnly)
                        {
                            matchedRequest = new MatchedRequest();
                            if (laundryRequest.WashingMachine == true)
                            {
                                matchedRequest.OwnerId         = laundryRequest.UserId;
                                matchedRequest.WasherId        = request.UserId;
                                matchedRequest.OwnerRequestId  = laundryRequest.RequestId;
                                matchedRequest.WasherRequestId = request.RequestId;
                            }
                            else
                            {
                                matchedRequest.OwnerId         = request.UserId;
                                matchedRequest.WasherId        = laundryRequest.UserId;
                                matchedRequest.OwnerRequestId  = request.RequestId;
                                matchedRequest.WasherRequestId = laundryRequest.RequestId;
                            }
                            matchedRequest.Status = "Accepted";
                            Users owner = (from lr in _context.Users
                                           where lr.Userid == matchedRequest.OwnerId
                                           select lr).FirstOrDefault();
                            Users washer = (from lr in _context.Users
                                            where lr.Userid == matchedRequest.WasherId
                                            select lr).FirstOrDefault();
                            matchedRequest.Distance = Convert.ToDecimal(GetDistance(Convert.ToDouble(owner.Latitude), Convert.ToDouble(owner.Longitude),
                                                                                    Convert.ToDouble(washer.Latitude), Convert.ToDouble(washer.Longitude)));
                            laundryRequest.Status = "Active";
                            _context.MatchedRequest.Add(matchedRequest);
                            _context.SaveChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }