コード例 #1
0
        public ViewResult Detail(Guid id)
        {
            rent dbItem = RepoRent.FindByPk(id);
            List <rent_package>     listRentPackage = RepoRent.FindAllRentPackage().Where(n => n.id_rent == id).ToList();
            BookingPresentationStub model           = new BookingPresentationStub(dbItem, listRentPackage);

            return(View(model));
        }
コード例 #2
0
        public JsonResult GetBooking(Guid id)
        {
            List <string> result = new List <string>();

            if (id != null)
            {
                rent r = RepoRent.FindByPk(id);
                result.Add(r.customer.name);
                result.Add(r.start_rent.ToString(new DisplayFormatHelper().FullDateFormat) + " s/d " + r.finish_rent.ToString(new DisplayFormatHelper().FullDateFormat));
                result.Add(r.price.ToString());
                result.Add(r.code);
            }
            return(Json(result));
        }
コード例 #3
0
        public HttpResponseMessage Submit([FromBody] DriverRentParam param)
        {
            //kamus
            BookingPresentationStub result = new BookingPresentationStub();
            rent rent        = new rent();
            bool isDatavalid = true;
            IEnumerable <string> headerValues;
            HttpStatusCode       httpStatus = HttpStatusCode.InternalServerError;
            string responseMessage          = null;
            string username = null;

            // Mengecek parameter
            //jika ID kosong, 403 Forbidden
            if (param.Id == Guid.Empty)
            {
                isDatavalid     = false;
                responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "OrderNullAlert").ToString();
                httpStatus      = HttpStatusCode.Forbidden;
            }

            //cek username
            if (isDatavalid)
            {
                if (Request.Headers.TryGetValues("Username", out headerValues))
                {
                    username = headerValues.FirstOrDefault();
                }
                else
                {
                    isDatavalid     = false;
                    responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "UsernameNullAlert").ToString();
                    httpStatus      = HttpStatusCode.Forbidden;
                }
            }

            //jika Username tidak sama dg username driver
            if (isDatavalid)
            {
                rent = RepoRent.FindByPk(param.Id);
                if ((rent == null) || (rent.driver == null) || (username != rent.driver.username))
                {
                    isDatavalid     = false;
                    responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "NotAccess").ToString();
                    httpStatus      = HttpStatusCode.Forbidden;
                }
            }

            // Pengecekan Status
            //mengambil rent milik idDriver
            if (isDatavalid)
            {
                // untuk merubah status dari NEW ke GO
                if (rent.status == RentStatus.GO.ToString())
                {
                    rent.status       = RentStatus.FINISH.ToString();
                    rent.updated_by   = rent.driver.username;
                    rent.updated_time = DateTime.Now;
                    RepoRent.Save(rent);

                    httpStatus = HttpStatusCode.OK;
                }
                // untuk mengecek status, jika NEW => 500 internal server error
                else if (rent.status == RentStatus.NEW.ToString())
                {
                    responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "NewAlert").ToString();
                    httpStatus      = HttpStatusCode.InternalServerError;
                }
                // untuk mengecek status, jika FINISH => 500 internal server error
                else if (rent.status == RentStatus.FINISH.ToString())
                {
                    responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "FinishAlert").ToString();
                    httpStatus      = HttpStatusCode.InternalServerError;
                }
                // untuk mengecek status, jika CANCEL => 500 internal server error
                else
                {
                    responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "CancelAlert").ToString();
                    httpStatus      = HttpStatusCode.InternalServerError;
                }
            }

            if (responseMessage != null)
            {
                HttpContext.Current.Response.AppendHeader("ResponseMessage", responseMessage);
            }
            return(Request.CreateResponse(httpStatus));
        }
コード例 #4
0
        public HttpResponseMessage Submit([FromBody] DriverPositionParam param)
        {
            //kamus
            BookingPresentationStub result = new BookingPresentationStub();
            rent          rent             = new rent();
            bool          isDatavalid      = true;
            List <rent>   listRent         = new List <rent>();
            rent_position rentPos          = new rent_position();
            string        username         = null;

            IEnumerable <string> headerValues = Enumerable.Empty <string>();
            HttpStatusCode       httpStatus   = HttpStatusCode.InternalServerError;
            string responseMessage            = null;

            rent = RepoRent.FindByPk(param.Id);

            //algoritma
            //Mengecek Parameter
            //jika ID kosong, 403 Forbidden
            if (param.Id == Guid.Empty)
            {
                isDatavalid     = false;
                responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "OrderNullAlert").ToString();
                httpStatus      = HttpStatusCode.Forbidden;
            }

            //cek username
            if (isDatavalid)
            {
                if (Request.Headers.TryGetValues("Username", out headerValues))
                {
                    username = headerValues.FirstOrDefault();
                }
                else
                {
                    isDatavalid     = false;
                    responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "UsernameNullAlert").ToString();
                    httpStatus      = HttpStatusCode.Forbidden;
                }
            }

            //jika Username tidak sama dg username driver
            if (isDatavalid)
            {
                rent = RepoRent.FindByPk(param.Id);
                if ((rent == null) || (rent.driver == null) || (username != rent.driver.username))
                {
                    isDatavalid     = false;
                    responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "NotAccess").ToString();
                    httpStatus      = HttpStatusCode.Forbidden;
                }
            }

            // Status Check
            //mengambil rent milik id Driver
            if (isDatavalid)
            {
                // Jika rent status GO => menyimpan kedatabase rent_position
                if (rent.status == RentStatus.GO.ToString())
                {
                    rentPos.id_rent      = rent.id;
                    rentPos.longitude    = param.Long;
                    rentPos.latitude     = param.Lat;
                    rentPos.created_by   = rent.driver.username;
                    rentPos.created_time = DateTime.Now;
                    RepoPos.Save(rentPos);
                    httpStatus = HttpStatusCode.OK;
                }
                // Jika rent status NEW => 500 Internal server error
                else if (rent.status == RentStatus.NEW.ToString())
                {
                    responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "NewAlert").ToString();
                    httpStatus      = HttpStatusCode.InternalServerError;
                }
                // Jika rent status FINISH => 500 Internal server error
                else if (rent.status == RentStatus.FINISH.ToString())
                {
                    responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "FinishAlert").ToString();
                    httpStatus      = HttpStatusCode.InternalServerError;
                }
                // Jika rent status CANCEL => 500 Internal Server error
                else
                {
                    responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "CancelAlert").ToString();
                    httpStatus      = HttpStatusCode.InternalServerError;
                }
            }

            if (responseMessage != null)
            {
                HttpContext.Current.Response.AppendHeader("ResponseMessage", responseMessage);
            }

            return(Request.CreateResponse(httpStatus));
        }
コード例 #5
0
        public HttpResponseMessage GetActiveRent([FromBody] List <DriverActiveRentParam> param)
        {
            //kamus
            List <BookingPresentationStub> results;
            List <rent> listRent = new List <rent>();
            rent        rent;
            driver      driver;
            Guid        idDriver;

            DateTime       dtUpdated;
            DateTimeOffset dtoUpdated;

            IEnumerable <string> headerValues;

            Business.Infrastructure.FilterInfo filters = new Business.Infrastructure.FilterInfo {
                Filters = new List <Business.Infrastructure.FilterInfo>(), Logic = "and"
            };

            HttpStatusCode httpStatus      = HttpStatusCode.Forbidden;
            string         responseMessage = null;

            //algoritma
            if (Request.Headers.TryGetValues("Username", out headerValues))
            {
                //mengambil semua rent milik idDriver dengan status NEW / GO
                filters.Filters.Add(new Business.Infrastructure.FilterInfo {
                    Field = "username", Operator = "eq", Value = headerValues.FirstOrDefault()
                });
                driver = RepoDriver.FindAll(null, null, null, filters).FirstOrDefault();
                if (driver != null)
                {
                    idDriver = driver.id;

                    filters = new Business.Infrastructure.FilterInfo
                    {
                        Filters = new List <Business.Infrastructure.FilterInfo>
                        {
                            new Business.Infrastructure.FilterInfo
                            {
                                Field = "id_driver", Operator = "eq", Value = idDriver.ToString()
                            },
                            new Business.Infrastructure.FilterInfo
                            {
                                Filters = new List <Business.Infrastructure.FilterInfo>
                                {
                                    new Business.Infrastructure.FilterInfo {
                                        Field = "status", Operator = "eq", Value = Common.Enums.RentStatus.GO.ToString()
                                    },
                                    new Business.Infrastructure.FilterInfo {
                                        Field = "status", Operator = "eq", Value = Common.Enums.RentStatus.NEW.ToString()
                                    },
                                },
                                Logic = "or"
                            },
                        },
                        Logic = "and"
                    };

                    listRent = RepoRent.FindAll(null, null, null, filters);

                    //menghapus data dari list rent yang <= param.update_time
                    if (param != null)
                    {
                        foreach (DriverActiveRentParam single in param)
                        {
                            //mengambil data yang bersesuaian di listRent
                            rent = listRent.Where(m => m.id == single.Id).FirstOrDefault();

                            //if data di listRent lebih lama (<=), dihapus dari listRent
                            if (rent != null)
                            {
                                if (rent.updated_time.Value.UtcDateTime <= single.UpdatedTimeUtc)
                                {
                                    listRent.Remove(rent);
                                }
                            }
                            else //rent tidak ditemukan di listRent
                            {
                                rent = RepoRent.FindByPk(single.Id);
                                if (rent != null)
                                {
                                    if (rent.updated_time.Value.UtcDateTime > single.UpdatedTimeUtc)
                                    {
                                        listRent.Add(rent);
                                    }
                                }
                            }
                        }
                    }

                    httpStatus = HttpStatusCode.OK;
                }
                else
                {
                    responseMessage = "Username Anda tidak ditemukan.";
                }
            }
            else
            {
                responseMessage = "Username Anda tidak ditemukan.";
            }


            //result
            results = new BookingPresentationStub().MapList(listRent);

            if (responseMessage != null)
            {
                HttpContext.Current.Response.AppendHeader("ResponseMessage", responseMessage);
            }
            return(Request.CreateResponse(httpStatus, results));
        }