public double ChargeTimeRange(TimeSpan start, TimeSpan end)
        {
            List <PostageDetail> postageDetails = postageDetailBUS.GetByPostageId(postageBUS.GetTheLastPostage().KeyId);
            PostageDetail        HourMarkStart  = GetHourMark(postageDetails, start);
            PostageDetail        HourMarkEnd    = GetHourMark(postageDetails, end);

            if (start < end)
            {
                if (HourMarkStart.KeyId == HourMarkEnd.KeyId)
                {
                    return(ChargeTimeRange(start, end, HourMarkStart.Cost));
                }
                double        charge = 0;
                int           index;
                PostageDetail NextMarkStart = ((index = postageDetails.IndexOf(HourMarkStart) + 1) < postageDetails.Count) ? postageDetails[index] : postageDetails[0];
                charge += ChargeTimeRange(start, NextMarkStart.HourMark, HourMarkStart.Cost);
                for (int i = NextMarkStart.KeyId; i < HourMarkEnd.KeyId; i++)
                {
                    charge += ChargeTimeRange(postageDetails[i].HourMark, postageDetails[i + 1].HourMark, postageDetails[i].Cost);
                }
                charge += ChargeTimeRange(HourMarkEnd.HourMark, end, HourMarkEnd.Cost);
                return(charge);
            }
            return(ChargeFullDay(postageDetails) - ChargeTimeRange(end, start));
        }
示例#2
0
        public ActionResult DeleteConfirmed(int id)
        {
            PostageDetail postageDetail = db.PostageDetails.Find(id);

            db.PostageDetails.Remove(postageDetail);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#3
0
 public ActionResult Edit([Bind(Include = "KeyId,PostageFK,HourMark,Cost")] PostageDetail postageDetail)
 {
     if (ModelState.IsValid)
     {
         db.Entry(postageDetail).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(postageDetail));
 }
示例#4
0
 public PostageDetail Add(PostageDetail postageDetail)
 {
     if (postageDetail == null)
     {
         return(null);
     }
     db.Entry(postageDetail).State = System.Data.Entity.EntityState.Added;
     db.SaveChanges();
     return(postageDetail);
 }
示例#5
0
        public ActionResult Create([Bind(Include = "KeyId,PostageFK,HourMark,Cost")] PostageDetail postageDetail)
        {
            if (ModelState.IsValid)
            {
                db.PostageDetails.Add(postageDetail);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(postageDetail));
        }
示例#6
0
        // GET: PostageDetail/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PostageDetail postageDetail = db.PostageDetails.Find(id);

            if (postageDetail == null)
            {
                return(HttpNotFound());
            }
            return(View(postageDetail));
        }
示例#7
0
        private void btnAddHourMark_Click(object sender, EventArgs e)
        {
            TimeSpan HourMark = new TimeSpan((int)nudHour.Value, (int)nudMinute.Value, (int)nudSecond.Value);

            if (postageBUS.CheckAddPostageDetails(txtPostageCost.Text, HourMark, HourMarks))
            {
                int           n             = postageBUS.GetAll().Count + 1;
                PostageDetail postageDetail = new PostageDetail();
                postageDetail.PostageFK = n;
                postageDetail.HourMark  = HourMark;
                postageDetail.Cost      = Convert.ToInt32(txtPostageCost.Text);

                HourMarks.Add(postageDetail);
                HourMarks = HourMarks.OrderBy(p => p.HourMark).ToList();

                nudHour.Value       = nudHour.Minimum;
                nudMinute.Value     = nudMinute.Minimum;
                nudSecond.Value     = nudSecond.Minimum;
                txtPostageCost.Text = "";

                LoadPostageDetails(grvAddHourMark, HourMarks);
            }
        }