public dynamic ViewOrderDetailsOfClientWaitingForBudgetApproval(ViewOrderDetailsOfClientInput[] Input)
        {
            try
            {
                var inputClientId = Input[0].ClientId;

                LoaderAppEntites dbContext = new LoaderAppEntites();
                var orderist = dbContext.Orders.Where(e => e.ClientId == inputClientId && e.OrderStatus == "Waiting For Budget Approval").ToList();

                List <OrderDto> orderListDto = new List <OrderDto>();
                foreach (var order in orderist)
                {
                    orderListDto.Add(Mapper.Map <Order, OrderDto>(order));
                }

                //                var orderListDto = Mapper.Map<Order, OrderDto>(orderist);

                return(orderListDto);
            }
            catch (Exception ex)
            {
                return(new
                {
                    IsOrderUpdated = false,
                    ErrorException = ex
                });
            }
        }
        public dynamic ViewOrderStatusOfClient(ViewOrderDetailsOfClientInput[] Input)
        {
            try
            {
                var inputClientId = Input[0].ClientId;

                LoaderAppEntites dbContext = new LoaderAppEntites();
                var orderist = dbContext.Orders.Where(e => e.ClientId == inputClientId && (e.OrderStatus == "Accepted" || e.OrderStatus == "Confirmed" || e.OrderStatus == "In Transit" || e.OrderStatus == "Completed")).ToList();

                List <OrderDto> orderListDto = new List <OrderDto>();
                foreach (var order in orderist)
                {
                    orderListDto.Add(Mapper.Map <Order, OrderDto>(order));
                }

                //                var orderListDto = Mapper.Map<Order, OrderDto>(orderist);

                return(orderListDto);
            }
            catch (Exception ex)
            {
                return(new
                {
                    IsOrderUpdated = false,
                    ErrorException = ex
                });
            }
        }
예제 #3
0
        public ActionResult sendOrderConfirmationtoTO(int id)
        {
            //Session["SignIn"] = false;
            if (Session["SignIn"] != null)
            {
                LoaderAppEntites dbContext = new LoaderAppEntites();
                var quotes = dbContext.Quotes.Where(e => e.OrderId == id).FirstOrDefault();
                var order  = dbContext.Orders.Where(e => e.Id == id).FirstOrDefault();
                order.OrderStatus  = "Confirmed";
                quotes.QuoteStatus = "Confirmed";

                var transportOwner = dbContext.Users.Where(e => e.Id == order.TransportOwnerId).FirstOrDefault();

                var devId = transportOwner.DevId;
                var msg   = "Hey " + transportOwner.FirstName + " " + transportOwner.LastName + " Your Quote Has been accepted";
                Notifications.SendPushNotification(devId, msg);



                dbContext.SaveChanges();

                return(RedirectToAction("updateOrderAsConfirmedToTransportOwner"));
            }
            return(RedirectToAction("SignIn"));
        }
        // request parameter an array so that it could be accessed by volley in android as response is a json array
        public dynamic ViewOrderUpdatesOfTransportOwner(ViewOrderDetailsOfTransportOwnerIput[] Input)
        {
            try
            {
                LoaderAppEntites dbContext = new LoaderAppEntites();

                var inputToId = Input[0].TransportOwnerId;
                var orderist  = dbContext.Orders.Where(e => e.TransportOwnerId == inputToId && (e.OrderStatus == "Confirmed" || e.OrderStatus == "In Transit")).ToList();

                List <OrderDto> orderListDto = new List <OrderDto>();
                foreach (var order in orderist)
                {
                    orderListDto.Add(Mapper.Map <Order, OrderDto>(order));
                }


                return(orderListDto);
            }
            catch (Exception ex)
            {
                return(new
                {
                    IsOrderUpdated = false,
                    ErrorException = ex
                });
            }
        }
예제 #5
0
 public ActionResult changeStatusToTransit()
 {
     //Session["SignIn"] = false;
     if (Session["SignIn"] != null)
     {
         LoaderAppEntites dbContext = new LoaderAppEntites();
         ViewBag.TransitOrders = dbContext.Quotes.Where(e => e.QuoteStatus == "In Transit").ToList();
         return(View());
     }
     return(RedirectToAction("SignIn"));
 }
예제 #6
0
 public ActionResult updateOrderAsConfirmedToTransportOwner()
 {
     //Session["SignIn"] = false;
     if (Session["SignIn"] != null)
     {
         LoaderAppEntites dbContext = new LoaderAppEntites();
         var check = "Accepted";
         ViewBag.AcceptedOrders = dbContext.Orders.Where(e => e.OrderStatus == check).ToList();
         return(View());
     }
     return(RedirectToAction("SignIn"));
 }
예제 #7
0
        public ActionResult showClients()
        {
            //Session["SignIn"] = false;
            if (Session["SignIn"] != null)
            {
                LoaderAppEntites dbContext = new LoaderAppEntites();
                var check1 = "Customer";

                ViewBag.ClientsData = dbContext.Users.Where(e => e.Role == check1).ToList();
                return(View());
            }
            return(RedirectToAction("SignIn"));
        }
예제 #8
0
 public ActionResult viewAvailableOrders()
 {
     if (Session["SignIn"] != null)
     {
         // Session["SignIn"] = true;
         var listOfOrders           = new List <Order>();
         LoaderAppEntites dbContext = new LoaderAppEntites();
         // AllOrderS From Order Table
         ViewBag.OrderData = dbContext.Orders.Where(e => e.OrderStatus != "x").ToList();
         return(View());
     }
     return(RedirectToAction("SignIn"));
 }
        public dynamic PostBidToAnOrder(PostBidToAnOrderInput input)
        {
            // comment
            try
            {
                LoaderAppEntites dbContext = new LoaderAppEntites();

                var isAlreadyQuoted = dbContext.Quotes.FirstOrDefault(e => e.OrderId == input.OrderId && e.TransportOwnerId == input.TransportOwnerId);
                var vehicle         = dbContext.Vehicles.Where(e => e.UserId == input.TransportOwnerId).FirstOrDefault();



                if (isAlreadyQuoted == null && vehicle.VehicleIsBooked != true)
                {
                    Quote quote = new Quote();

                    quote.OrderId            = input.OrderId;
                    quote.QuoteStatus        = "Pending";
                    quote.TransportOwnerId   = input.TransportOwnerId;
                    quote.QuoteBudget        = input.budget;
                    quote.TransportOwnerName = input.TransportOwnerName;
                    dbContext.Quotes.Add(quote);
                    dbContext.SaveChanges();

                    return(new
                    {
                        isQuoteAdded = true,
                        exception = "null",
                        message = "Quote Posted Successfully"
                    });
                }
                else
                {
                    return(new
                    {
                        isQuoteAdded = false,
                        exception = "null",
                        message = "Already Quoted This Order or Vehicle is booked"
                    });
                }
            }
            catch (Exception ex)
            {
                return(new
                {
                    isQuoteAdded = false,
                    exception = ex,
                    message = "Server Error"
                });
            }
        }
        public dynamic UpdateProfile(User Input)
        {
            try {
                LoaderAppEntites dbContext = new LoaderAppEntites();

                var checkIfAlreayExist = dbContext.Users.FirstOrDefault(e => e.PhoneNo == Input.PhoneNo);
                if (checkIfAlreayExist == null)
                {
                    dbContext.Users.Add(Input);
                    dbContext.SaveChanges();

                    var userId = dbContext.Users.FirstOrDefault(e => e.PhoneNo == Input.PhoneNo);
                    return(new
                    {
                        IsUserUpdated = true,
                        ErrorException = "null",
                        UserId = userId.Id
                    });
                }
                else
                {
                    var itemToUpdate = dbContext.Users.Single(e => e.PhoneNo == Input.PhoneNo);

                    itemToUpdate.FirstName   = Input.FirstName;
                    itemToUpdate.LastName    = Input.LastName;
                    itemToUpdate.ImgId       = Input.ImgId;
                    itemToUpdate.Password    = Input.Password;
                    itemToUpdate.CompanyName = Input.CompanyName;

                    dbContext.SaveChanges();

                    return(new
                    {
                        IsUserUpdated = true,
                        ErrorException = "null",
                        UserId = itemToUpdate.Id
                    });
                }
            }
            catch (Exception ex)
            {
                return(new
                {
                    IsUserUpdated = false,
                    ErrorException = ex,
                    UserId = "-1"
                });
            }
        }
예제 #11
0
        public ActionResult viewAvailableQuotes()
        {
            //Session["SignIn"] = false;
            if (Session["SignIn"] != null)
            {
                LoaderAppEntites dbContext = new LoaderAppEntites();
                var check1 = "Pending";
                var check2 = "Rejected";

                ViewBag.QuotesData = dbContext.Orders.Where(e => (e.OrderStatus == check1 || e.OrderStatus == check2)).ToList();
                return(View());
            }
            return(RedirectToAction("SignIn"));

            //return View();
        }
예제 #12
0
        public ActionResult DeleteSingleOrder(int id)
        {
            //Session["SignIn"] = false;
            if (Session["SignIn"] != null)
            {
                LoaderAppEntites dbContext = new LoaderAppEntites();
                var orderToDelete          = dbContext.Orders.Single(e => e.Id == id);
                dbContext.Quotes.Where(e => e.OrderId == id).ToList().ForEach(e =>
                {
                    dbContext.Quotes.Remove(e);
                });
                dbContext.Orders.Remove(orderToDelete);
                dbContext.SaveChanges();

                return(RedirectToAction("viewAvailableOrders"));
            }
            return(RedirectToAction("SignIn"));
        }
예제 #13
0
        public ActionResult DeleteSingleClient(int id)
        {
            //Session["SignIn"] = false;
            if (Session["SignIn"] != null)
            {
                LoaderAppEntites dbContext = new LoaderAppEntites();
                var userToDelete           = dbContext.Users.Single(e => e.Id == id);
                dbContext.Orders.Where(e => e.ClientId == id).ToList().ForEach(e =>
                {
                    dbContext.Orders.Remove(e);
                });
                dbContext.Users.Remove(userToDelete);
                dbContext.SaveChanges();

                return(RedirectToAction("showClients"));
            }
            return(RedirectToAction("SignIn"));
        }
예제 #14
0
        public ActionResult AcceptQuote(int id = 0)
        {
            //Session["SignIn"] = false;
            if (Session["SignIn"] != null)
            {
                LoaderAppEntites dbContext = new LoaderAppEntites();
                var quote = dbContext.Quotes.Where(e => e.Id == id).FirstOrDefault();

                ViewBag.quoteData = quote;



                return(View());
            }
            return(RedirectToAction("SignIn"));

            //return View();
        }
예제 #15
0
        public ActionResult SubmitQuote(SubmitQuoteInput model, int id)
        {
            //Session["SignIn"] = false;
            if (Session["SignIn"] != null)
            {
                LoaderAppEntites dbContext = new LoaderAppEntites();
                var quote = dbContext.Quotes.Where(e => e.Id == id).FirstOrDefault();
                //hamza start

                Double BudgetForClient = Double.Parse(quote.QuoteBudget) + model.comission;

                var orderToUpdate = dbContext.Orders.Where(e => e.Id == quote.OrderId).FirstOrDefault();
                orderToUpdate.OrderStatus      = "Waiting For Budget Approval";
                orderToUpdate.TransportOwnerId = quote.TransportOwnerId;
                orderToUpdate.OrderBudget      = BudgetForClient.ToString();

                var vehicle = dbContext.Vehicles.Where(e => e.UserId == quote.TransportOwnerId).FirstOrDefault();
                vehicle.VehicleIsBooked = true;

                var client = dbContext.Users.Where(e => e.Id == orderToUpdate.ClientId).FirstOrDefault();

                var devId = client.DevId;
                var msg   = "Hey " + client.FirstName + " " + client.LastName + " You Have an order pending for budget approval";
                Notifications.SendPushNotification(devId, msg);

                //hamza end



                quote.QuoteStatus = "Waiting For Budget Approval";
                var order = dbContext.Orders.Where(e => e.Id == quote.OrderId).FirstOrDefault();
                order.Quotes.ToList().Where(e => e.Id != id).ToList().ForEach(
                    e =>
                {
                    dbContext.Quotes.Remove(e);
                }
                    );
                dbContext.SaveChanges();


                return(RedirectToAction("viewAvailableQuotes"));
            }
            return(RedirectToAction("SignIn"));
        }
        public dynamic SignIn(User input)
        {
            try
            {
                LoaderAppEntites dbContext = new LoaderAppEntites();
                var userEntity             = dbContext.Users.FirstOrDefault(e => e.PhoneNo == input.PhoneNo && e.Password == input.Password);

                var userDto = Mapper.Map <User, UserDto>(userEntity);

                if (userDto == null)
                {
                    return(new
                    {
                        IsSignedIn = false,
                        Message = "Check Phone no or password",
                        UserData = "null",
                        Error = "null"
                    });
                }
                else
                {
                    return(new
                    {
                        IsSignedIn = true,
                        Message = "SignIn sucessfull",
                        UserData = userDto,
                        Error = "null"
                    });
                }
            }
            catch (Exception ex)
            {
                return(new
                {
                    IsSignedIn = false,
                    Message = "Check Phone no or password",
                    UserData = "null",
                    Error = ex
                });
            }
        }
예제 #17
0
        public ActionResult ConfirmCompleted(int Id, string ToId)
        {
            var splitString = ToId.Split(' ');
            var toId        = Convert.ToInt32(splitString[0]);
            var rating      = Convert.ToInt32(splitString[1]);

            //Session["SignIn"] = false;
            if (Session["SignIn"] != null)
            {
                LoaderAppEntites dbContext = new LoaderAppEntites();

                var order = dbContext.Orders.Where(e => e.Id == Id).SingleOrDefault();
                var quote = dbContext.Quotes.Where(e => e.OrderId == Id).SingleOrDefault();
                order.OrderStatus = "Completed";
                quote.QuoteStatus = "Job Completed";
                dbContext.Ratings.Add(new Rating()
                {
                    ToId    = toId,
                    Rating1 = rating
                });

                var client  = dbContext.Users.Where(e => e.Id == order.ClientId).FirstOrDefault();
                var vehicle = dbContext.Vehicles.Where(e => e.UserId == quote.TransportOwnerId).FirstOrDefault();

                vehicle.VehicleIsBooked = false;



                var devId = client.DevId;
                var msg   = "Hey " + client.FirstName + " " + client.LastName + " Your order is Completed";

                Notifications.SendPushNotification(devId, msg);



                dbContext.SaveChanges();

                return(RedirectToAction("changeStatusToCompleted"));
            }
            return(RedirectToAction("SignIn"));
        }
 public dynamic changeOrderStatus(AcceptOrDeclineOfferInput input)
 {
     try
     {
         LoaderAppEntites dbContext = new LoaderAppEntites();
         var quote = dbContext.Quotes.Where(e => e.OrderId == input.OrderId).FirstOrDefault();
         quote.QuoteStatus = input.Status;
         dbContext.SaveChanges();
         return(new
         {
             Message = "Order Status changed Admin will review the changes"
         });
     }
     catch (Exception ex)
     {
         return(new
         {
             Message = "Exception occured due to some reason"
         });
     }
 }
예제 #19
0
 public ActionResult showTOs()
 {
     //Session["SignIn"] = false;
     if (Session["SignIn"] != null)
     {
         LoaderAppEntites dbContext = new LoaderAppEntites();
         var check1 = "TransportOwner";
         ViewBag.TosData = dbContext.Users.Where(e => e.Role == check1).Select(e =>
                                                                               new UserDto()
         {
             FirstName   = e.FirstName,
             LastName    = e.LastName,
             Email       = e.Email,
             PhoneNo     = e.PhoneNo,
             CompanyName = e.CompanyName,
             Rating      = dbContext.Ratings.Where(r => r.ToId == e.Id).Sum(r => r.Rating1) / dbContext.Ratings.Where(r => r.ToId == e.Id).Count()
         }).ToList();
         return(View());
     }
     return(RedirectToAction("SignIn"));
 }
 public dynamic PlaceAnOrder(Order Input)
 {
     try
     {
         LoaderAppEntites dbContext = new LoaderAppEntites();
         dbContext.Orders.Add(Input);
         dbContext.SaveChanges();
         return(new
         {
             IsOrderUpdated = true,
         });
     }
     catch (Exception ex)
     {
         return(new
         {
             IsOrderUpdated = false,
             ErrorException = ex
         });
     }
 }
 public dynamic UpdateVehicle(Vehicle Input)
 {
     try
     {
         LoaderAppEntites dbContext = new LoaderAppEntites();
         dbContext.Vehicles.Add(Input);
         dbContext.SaveChanges();
         return(new
         {
             IsVehicleUpdated = true,
         });
     }
     catch (Exception ex)
     {
         return(new
         {
             IsVehicleUpdated = false,
             ErrorException = ex
         });
     }
 }
예제 #22
0
 public ActionResult changeStatusToCompleted()
 {
     //Session["SignIn"] = false;
     if (Session["SignIn"] != null)
     {
         LoaderAppEntites dbContext = new LoaderAppEntites();
         var check = "Completed";
         ViewBag.CompletedOrders = dbContext.Quotes.Where(e => e.QuoteStatus == check)
                                   .Select(e => new QuoteDto()
         {
             rating             = 0,
             Id                 = e.Id,
             OrderId            = e.OrderId,
             TransportOwnerId   = e.TransportOwnerId,
             QuoteBudget        = e.QuoteBudget,
             QuoteStatus        = e.QuoteStatus,
             TransportOwnerName = e.TransportOwnerName,
         })
                                   .ToList();
         return(View());
     }
     return(RedirectToAction("SignIn"));
 }
예제 #23
0
        public ActionResult DeleteSingleTo(int id)
        {
            //Session["SignIn"] = false;
            if (Session["SignIn"] != null)
            {
                LoaderAppEntites dbContext = new LoaderAppEntites();
                var userToDelete           = dbContext.Users.Single(e => e.Id == id);


                dbContext.Quotes.Where(e => e.TransportOwnerId == id).ToList().ForEach(e =>
                {
                    dbContext.Quotes.Remove(e);
                });

                var vehicle = dbContext.Vehicles.Single(e => e.UserId == id);
                dbContext.Vehicles.Remove(vehicle);
                dbContext.Users.Remove(userToDelete);
                dbContext.SaveChanges();

                return(RedirectToAction("showTOs"));
            }
            return(RedirectToAction("SignIn"));
        }
예제 #24
0
        public ActionResult ConfirmTransit(int Id)
        {
            //Session["SignIn"] = false;
            if (Session["SignIn"] != null)
            {
                LoaderAppEntites dbContext = new LoaderAppEntites();
                var order = dbContext.Orders.Where(e => e.Id == Id).FirstOrDefault();
                order.OrderStatus = "In Transit";
                var quote = dbContext.Quotes.Where(e => e.OrderId == Id).FirstOrDefault();
                quote.QuoteStatus = "Confirm Transit";

                var client = dbContext.Users.Where(e => e.Id == order.ClientId).FirstOrDefault();

                var devId = client.DevId;
                var msg   = "Hey " + client.FirstName + " " + client.LastName + " Your order is In Transit";

                Notifications.SendPushNotification(devId, msg);


                dbContext.SaveChanges();
                return(RedirectToAction("changeStatusToTransit"));
            }
            return(RedirectToAction("SignIn"));
        }
 public dynamic ViewAvailableOrdersToBid(AcceptOrDeclineOfferInput [] Input)
 {
     try
     {
         LoaderAppEntites dbContext = new LoaderAppEntites();
         var ordersToBid            = dbContext.Orders
                                      .Where(e => e.OrderStatus == "Pending" || e.OrderStatus == "Rejected")
                                      .ToList();
         List <OrderDto> orderListToBidDto = new List <OrderDto>();
         foreach (var order in ordersToBid)
         {
             orderListToBidDto.Add(Mapper.Map <Order, OrderDto>(order));
         }
         return(orderListToBidDto);
     }
     catch (Exception ex)
     {
         return(new
         {
             IsOrderUpdated = false,
             ErrorException = ex
         });
     }
 }
        public dynamic AcceptOrDeclineOffer(AcceptOrDeclineOfferInput Input)
        {
            try
            {
                LoaderAppEntites dbContext = new LoaderAppEntites();
                var order = dbContext.Orders.Where(e => e.Id == Input.OrderId).Single();
                order.OrderStatus = Input.Status;
                dbContext.SaveChanges();


                if (Input.Status.Equals("Accepted"))
                {
                    return(new
                    {
                        IsOrderAccepted = true,
                        ErrorException = "null"
                    });
                }
                else
                {
                    return(new
                    {
                        IsOrderAccepted = false,
                        ErrorException = "null"
                    });
                }
            }
            catch (Exception ex)
            {
                return(new
                {
                    IsOrderAccepted = false,
                    ErrorException = ex
                });
            }
        }