public static void CreateModel(Model.EbikeOperatingInfo operInfo, ref Model.Ride ride) { ride.TerminalID = operInfo.TerminalID; ride.EventID = operInfo.EventID; ride.StartTime = operInfo.SamplingTime; ride.EndTime = operInfo.SamplingTime + 30; //默认至少骑行30S ride.Duration = 30; }
/// <summary> /// 注意此处的EventID,需要在调用时判断好 /// </summary> /// <param name="operInfo"></param> /// <returns></returns> public static int UpdateOrCreate(Model.EbikeOperatingInfo operInfo) { int result = 0; using (var context = new DefaultDbContext()) { var ride = context.Ride.FirstOrDefault(c => c.EventID == operInfo.EventID); if (ride == null) { ride = new Model.Ride(); Business.Ride.CreateModel(operInfo, ref ride); context.Ride.Add(ride); } else //更新充电时长 { Business.Ride.UpdateModel(operInfo, ref ride); context.Ride.Update(ride); } result = context.SaveChanges(); } return(result); }
protected void btnPay_Click(object sender, EventArgs e) { if (clStartDate.SelectedDate != DateTime.MinValue && clEndDate.SelectedDate != DateTime.MinValue) { if(clStartDate.SelectedDate <= DateTime.Now) { lblInfo.Text = "Start date should be after than today."; } else if(clStartDate.SelectedDate > clEndDate.SelectedDate) { lblInfo.Text = "You cannot select the end date before the star date."; } else { Model.Ride r = new Model.Ride() { PassengerId = u.Id, DriverId = v.DriverId, Description = txtDescription.Text.Trim(), StartDate = clStartDate.SelectedDate, EndDate = clEndDate.SelectedDate, Charge = v.Cost * (clEndDate.SelectedDate - clStartDate.SelectedDate).TotalDays, //Calculate charge based on the number of days for ride. }; bool result = Model.RideDb.Save(r); if (result) Response.Redirect("PaymentCompleted.aspx"); else lblInfo.Text = "An error has been occured while saving your ride."; } } else { lblInfo.Text = "Make sure that you have selected start and end date of your trip."; } }
protected void Page_Load(object sender, EventArgs e) { if (Session["UserKey"] != null) { u = Model.UserDb.GetUserById(Session["UserKey"]); Master.LabelOnMasterPage.Text = u.FullName; // If the userType is not Passenger, redirect to main page. if (u.UserType != 1) { Response.Redirect("Default.aspx"); } else { if (Request.QueryString["id"] != "") { int rideId = Convert.ToInt32(Request.QueryString["id"]); r = Model.RideDb.GetRideById(rideId); if(r == null) Response.Redirect("Default.aspx"); lblDriverName.Text = Model.UserDb.GetUserById(r.DriverId).FullName; lblModel.Text = Model.VehicleDb.getVehicleByUserId(r.DriverId).Model; lblCost.Text = r.Charge.ToString(); lblStartDate.Text = r.StartDate.ToString("dd MMMM yyyy", new CultureInfo("en-US")); lblEndDate.Text = r.EndDate.ToString("dd MMMM yyyy", new CultureInfo("en-US")); userReview = Model.ReviewDb.GetReviewByRideId(r.Id); if (userReview != null) { if (!IsPostBack) // This control is needed for update process. { rblVote.SelectedValue = userReview.Vote.ToString(); txtComment.Text = userReview.Comment; } btnSend.Visible = false; btnUpdate.Visible = true; } else { btnSend.Visible = true; btnUpdate.Visible = false; } } else { Response.Redirect("Default.aspx"); } } } else { Response.Redirect("Default.aspx"); } }
public static void UpdateModel(Model.EbikeOperatingInfo operInfo, ref Model.Ride ride) { ride.EndTime = operInfo.SamplingTime; ride.Duration = (int)(operInfo.SamplingTime - ride.StartTime); }
public static void Update(JObject jobj) { long terminalID = (long)jobj["TerminalID"]; string eventID = jobj["EventID"].ToString(); string preEventID = jobj.GetValue("PreEventID") == null?"": jobj["PreEventID"].ToString(); long samplingTime = (long)jobj["SamplingTime"]; double staticVoltageA = Math.Round((double)jobj["StaticVoltageA"], 2); int status = (int)jobj["Status"]; Model.EbikeOperatingInfo operInfo = new Model.EbikeOperatingInfo(); operInfo.TerminalID = terminalID; operInfo.EventID = eventID; operInfo.PreEventID = preEventID; operInfo.SamplingTime = samplingTime; operInfo.Voltage = staticVoltageA; operInfo.Status = status; //充电开始 if (status == 4 || status == 8) { var charge = new Model.Charge(); Business.Charge.CreateModel(operInfo, ref charge); using (var context = new DefaultDbContext()) { context.Charge.Add(charge); context.SaveChanges(); if (!eventID.Equals(preEventID) && status == 8) { operInfo.EventID = operInfo.PreEventID; //修改事件ID为上一次事件ID Business.Ride.UpdateOrCreate(operInfo); } } } // 骑行开始 else if (status == 1 || status == 7) { Model.Ride ride = new Model.Ride(); Business.Ride.CreateModel(operInfo, ref ride); using (var context = new DefaultDbContext()) { context.Ride.Add(ride); context.SaveChanges(); if (!eventID.Equals(preEventID) && status == 7) { //暂时不分析停车,因为停车时长暂时不主要分析 operInfo.EventID = operInfo.PreEventID; //修改事件ID为上一次事件ID Business.Charge.UpdateOrCreate(operInfo); } } } //更新充电时长 else if (status == 5) { Business.Charge.UpdateOrCreate(operInfo); } //更新骑行时长 else if (status == 2) { Business.Ride.UpdateOrCreate(operInfo); } //骑行结束 else if (status == 3) { operInfo.EventID = operInfo.PreEventID; Business.Ride.UpdateOrCreate(operInfo); } //骑行结束 else if (status == 6) { operInfo.EventID = operInfo.PreEventID; Business.Charge.UpdateOrCreate(operInfo); } }