Exemple #1
0
        public RentPositionPresentationStub(rent_position dbItem)
        {
            Id             = dbItem.id;
            IdRent         = dbItem.id_rent;
            CreatedBy      = dbItem.created_by;
            CreatedTimePos = dbItem.created_time;
            Latitude       = dbItem.latitude;
            Longitude      = dbItem.longitude;
            RentStatus rs;

            if (dbItem.rent.status != null)
            {
                rs         = (RentStatus)Enum.Parse(typeof(RentStatus), dbItem.rent.status);
                StatusEnum = rs.ToString();
                Status     = new EnumHelper().GetEnumDescription(rs);
            }

            Rent = new BookingPresentationStub(dbItem.rent);
        }
Exemple #2
0
        public void Save(rent_position dbItem)
        {
            if (dbItem.id == Guid.Empty) //create
            {
                dbItem.id = Guid.NewGuid();

                context.rent_position.Add(dbItem);
            }
            else //edit
            {
                context.rent_position.Attach(dbItem);

                var entry = context.Entry(dbItem);
                entry.State = EntityState.Modified;

                //field yang tidak ditentukan oleh user
                //entry.Property(e => e.is_delete).IsModified = false;
            }
            context.SaveChanges();
        }
Exemple #3
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));
        }