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); }
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(); }
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)); }