public List <MyOrderModel> List() { var Today = DateTime.Now; var model = new List <MyOrderModel>(); using (var db = new MyAnythingEntities()) { model = (from order in db.OrderMaster join room in db.Room on order.ProductId equals room.ID join pay in db.PayGo on order.MerchantOrderNo equals pay.MerchantOrderNo into paygo from x in paygo.DefaultIfEmpty() where order.UserId == UserId && (string.IsNullOrEmpty(SearchKey) || (order.Name.Contains(SearchKey) || order.Tel.Contains(SearchKey) || order.MerchantOrderNo.Contains(SearchKey))) select new MyOrderModel { CheckInDate = order.CheckIn, CheckOutDate = order.CheckOut, ID = order.ID, MerchantOrderNo = order.MerchantOrderNo, PaymentType = order.PaymentType, PayStatus = (order.ExpireDate != null && order.Status == OrderType.Unpaid.ToString() && DateTime.Compare(order.ExpireDate.Value, Today) < 0) ? "超過繳款期限" : (order.Status == OrderType.Paid.ToString() ? "付款完成" : (order.Status == OrderType.Expired.ToString() ? "超過繳款期限" : "未付款")), RoomName = order.ProductName, Created = order.Created }).ToList(); } return(model); }
public void Edit() { using (var db = new MyAnythingEntities()) { if (ID > 0) { var model = db.CodeFile.Where(o => o.ID == ID && o.ItemType == "Beds").FirstOrDefault(); if (model != null) { model.ItemDescription = ItemDescription; model.ItemType = ItemType; model.Remark = model.Remark; model.ItemCode = ItemCode; model.Enabled = model.Enabled; model.TypeText = model.TypeText; db.SaveChanges(); } } else { var model = new CodeFile(); model.ItemDescription = ItemDescription; model.ItemType = "Beds"; model.Remark = string.Empty; model.ItemCode = ItemCode; model.Enabled = true; model.TypeText = "床型"; db.CodeFile.Add(model); db.SaveChanges(); } } }
public void Edit() { using (var db = new MyAnythingEntities()) { if (ID <= 0) { db.Facility.Add(new Facility { Text = Text, Show = Show, Enabled = Enabled, Description = Description, Created = DateTime.Now }); } else { var model = db.Facility.Find(ID); model.Description = Description; model.Enabled = Enabled; model.Show = Show; model.Text = Text; } db.SaveChanges(); } }
public HotelCreateViewModel() { if (db == null) { db = new MyAnythingEntities(); } }
public void UpdateBonus() { var Today = DateTime.Now; var CanUserStatus = BonusStatusEnum.CanUse.ToString(); var db = new MyAnythingEntities(); var CanUserModel = db.MyBonus.Where(o => (o.UseMonth.Year == Today.Year && o.UseMonth.Month == Today.Month) && o.BonusStatus != CanUserStatus).ToList(); if (CanUserModel != null && CanUserModel.Count > 0) { foreach (var item in CanUserModel) { item.BonusStatus = CanUserStatus; } db.SaveChanges(); } var unPaid = OrderType.Unpaid.ToString(); var ExpiredOrder = db.OrderMaster.Where(o => o.Status == unPaid && (o.ExpireDate == null || DateTime.Compare(o.ExpireDate.Value, Today) < 0)).ToList(); if (ExpiredOrder != null && ExpiredOrder.Count > 0) { foreach (var item in ExpiredOrder) { item.Status = OrderType.Expired.ToString(); } db.SaveChanges(); } db.Dispose(); }
public decimal CurrentAmt(int RoomId) { var _db = new MyAnythingEntities(); decimal amt = 0; DateTime BeginDate = DateTime.MinValue; DateTime EndDate = DateTime.MinValue; var Now = DateTime.Now; var Current = HttpContext.Current; HttpContext.Current.Session["CheckInDate"] = Now.AddDays(1); HttpContext.Current.Session["CheckOutDate"] = Now.AddDays(2); if (Current.Session["CheckInDate"] == null || Current.Session["CheckOutDate"] == null) { BeginDate = Now.AddDays(1); EndDate = Now.AddDays(2); } else { BeginDate = DateTime.Parse(Current.Session["CheckInDate"].ToString()); EndDate = DateTime.Parse(Current.Session["CheckOutDate"].ToString()); } var day = ((int)BeginDate.DayOfWeek).ToString(); if (day == "5" || day == "6") { var Room = _db.Room.Find(RoomId); var RoomAmt = _db.RoomPrice.Where(o => (o.Date.Year == BeginDate.Year && o.Date.Month == BeginDate.Month && o.Date.Day == BeginDate.Day) && o.ROOMID == Room.ID).FirstOrDefault(); if (RoomAmt == null) { return(Room.HolidayPrice); } else { var PriceType = 99; int.TryParse(RoomAmt.DayType, out PriceType); amt = AmtFromRoomPrice(PriceType, Room); } } else { var Room = _db.Room.Find(RoomId); var RoomAmt = _db.RoomPrice.Where(o => (o.Date.Year == BeginDate.Year && o.Date.Month == BeginDate.Month && o.Date.Day == BeginDate.Day) && o.ROOMID == Room.ID).FirstOrDefault(); if (RoomAmt == null) { return(Room.DayPrice); } else { var PriceType = 99; int.TryParse(RoomAmt.DayType, out PriceType); amt = AmtFromRoomPrice(PriceType, Room); } } return(amt); }
public ScenicModel() { if (_db == null) { _db = new MyAnythingEntities(); } Scenic(); }
public FacilityModel() { if (_db == null) { _db = new MyAnythingEntities(); } Facility(); }
public HttpResponseMessage RoomPriceSave(List <CalendarPost> data) { var db = new MyAnythingEntities(); HttpResponseMessage response = new HttpResponseMessage() { StatusCode = HttpStatusCode.OK, Content = new StringContent(JsonConvert.SerializeObject(new { message = "ok" })) }; if (data.Count <= 0) { return(response); } var CreateModel = new List <RoomPrice>(); try { foreach (var item in data) { if (db.RoomPrice.Any(o => o.Date == item.date && o.ROOMID == item.RoomID)) { var obj = db.RoomPrice.Where(o => o.Date == item.date && o.ROOMID == item.RoomID).FirstOrDefault(); obj.ROOMID = item.RoomID; obj.Date = item.date; obj.DayType = item.daytype; obj.DayText = item.daytext; } else { db.RoomPrice.Add(new RoomPrice { DayText = item.daytext, DayType = item.daytype, Date = item.date, ROOMID = item.RoomID }); } } db.SaveChanges(); } catch (Exception ex) { response = new HttpResponseMessage() { StatusCode = HttpStatusCode.NotFound, Content = new StringContent(JsonConvert.SerializeObject(new { message = ex.Message.ToString() })) }; return(response); } return(response); }
public List <BedTypeModel> Query() { using (var db = new MyAnythingEntities()) { var model = db.CodeFile.Where(o => o.ItemType == "Beds").Select(o => new BedTypeModel { ID = o.ID, ItemCode = o.ItemCode, ItemDescription = o.ItemDescription }).ToList(); return(model); } }
public BonusNoticeViewModel Query() { var ItemType = "BonusNoticeFor25date"; using (var db = new MyAnythingEntities()){ var model = db.SystemField.Where(o => o.ItemType == ItemType).Select(o => new BonusNoticeViewModel { ItemDescription = o.ItemDescription, ItemValue = o.ItemValue }).FirstOrDefault(); return(model); } //return string.Empty; }
public void Edit25date() { var ItemType = "BonusNoticeFor25date"; using (var db = new MyAnythingEntities()) { var model = db.SystemField.Where(o => o.ItemType == ItemType).FirstOrDefault(); model.ItemValue = ItemValue; model.ItemDescription = ItemDescription; model.Modified = DateTime.Now; model.Modify = Modify; db.SaveChanges(); } }
public BedTypeModel Single(int id) { var model = new BedTypeModel(); using (var db = new MyAnythingEntities()) { model = db.CodeFile.Where(o => o.ItemType == "Beds" && o.ID == id).Select(o => new BedTypeModel { ID = o.ID, ItemCode = o.ItemCode, ItemDescription = o.ItemDescription }).FirstOrDefault(); } return(model); }
/// <summary> /// 更新繳費期限過期的訂單 /// </summary> public void UpdateExpired() { var unPaid = OrderType.Unpaid.ToString(); using (var db = new MyAnythingEntities()) { var Today = DateTime.Now; var ExpiredOrder = db.OrderMaster.Where(o => o.Status == unPaid && (o.ExpireDate.Value.Year >= Today.Year && o.ExpireDate.Value.Month >= Today.Month && o.ExpireDate.Value.Date >= Today.Date)).ToList(); if (ExpiredOrder != null && ExpiredOrder.Count > 0) { foreach (var item in ExpiredOrder) { item.Status = OrderType.Expired.ToString(); } db.SaveChanges(); } } }
public List <FacilityViewModel> Query() { var model = new List <FacilityViewModel>(); using (var db = new MyAnythingEntities()) { model = db.Facility.Select(o => new FacilityViewModel { Created = o.Created.Value, Description = o.Description, Enabled = o.Enabled, ID = o.ID, Show = o.Show.Value, Text = o.Text }).ToList(); } return(model); }
public void ExpireDate() { var Today = DateTime.Now; var db = new MyAnythingEntities(); var unPaid = OrderType.Unpaid.ToString(); var ExpiredOrder = db.OrderMaster.Where(o => o.Status == unPaid && (o.ExpireDate == null || DateTime.Compare(o.ExpireDate.Value, Today) < 0)).ToList(); if (ExpiredOrder != null && ExpiredOrder.Count > 0) { foreach (var item in ExpiredOrder) { item.Status = OrderType.Expired.ToString(); } db.SaveChanges(); } db.Dispose(); }
public void Edit() { using (var db = new MyAnythingEntities()) { var model = db.SystemField.Where(o => o.ItemCode == "BS").ToList(); var TotalFeeModel = model.Where(o => o.ItemType == "TotalFee").FirstOrDefault(); TotalFeeModel.ItemValue = TotalFee; var BuyFeeModel = model.Where(o => o.ItemType == "BuyFee").FirstOrDefault(); BuyFeeModel.ItemValue = BuyFee; var UpperFeeModel = model.Where(o => o.ItemType == "UpperFee").FirstOrDefault(); UpperFeeModel.ItemValue = UpperFee; var MinLimitAmtModel = model.Where(o => o.ItemType == "MinLimitAmt").FirstOrDefault(); MinLimitAmtModel.ItemValue = MinLimitAmt; var HotelPromoFeeModel = model.Where(o => o.ItemType == "HotelPromoFee").FirstOrDefault(); HotelPromoFeeModel.ItemValue = HotelPromoFee; db.SaveChanges(); } }
public BonusForSysModel Query() { var Result = new BonusForSysModel(); using (var db = new MyAnythingEntities()) { var model = db.SystemField.Where(o => o.ItemCode == "BS").ToList(); var TotalFeeModel = model.Where(o => o.ItemType == "TotalFee").FirstOrDefault().ItemValue; Result.TotalFee = TotalFeeModel; var BuyFeeModel = model.Where(o => o.ItemType == "BuyFee").FirstOrDefault().ItemValue; Result.BuyFee = BuyFeeModel; var UpperFeeModel = model.Where(o => o.ItemType == "UpperFee").FirstOrDefault().ItemValue; Result.UpperFee = UpperFeeModel; var HotelPromoFeeModel = model.Where(o => o.ItemType == "HotelPromoFee").FirstOrDefault().ItemValue; Result.HotelPromoFee = HotelPromoFeeModel; var MinLimitAmtModel = model.Where(o => o.ItemType == "MinLimitAmt").FirstOrDefault().ItemValue; Result.MinLimitAmt = MinLimitAmtModel; } return(Result); }
public void Edit() { var PersonBed = new List <int>(); RoomBed = string.Join(",", PersonBed); using (var db = new MyAnythingEntities()) { var result = db.Room.Find(ID); result.HotelId = HotelId; result.Notice = Notice; result.Modified = DateTime.Now; result.Modify = Creator; result.Name = Name; result.FixedPrice = FixedPrice; result.HolidayPrice = HolidayPrice; result.DayPrice = DayPrice; result.Quantity = Quantity; result.MaxPerson = MaxPerson; result.Enabled = Enabled; result.RoomType = RoomType; result.BedAmount = BedAmount; result.BedType = BedType; result.Feature = string.IsNullOrEmpty(Feature) ? string.Empty :Feature; result.HasBreakfast = HasBreakfast; result.ID = ID; //db.SaveChanges(); var RoomImage = RoomImages(); foreach (var img in RoomImage) { img.RoomId = result.ID; } db.RoomImage.AddRange(RoomImage); db.SaveChanges(); } }
public void Create() { using (var db = new MyAnythingEntities()) { var UsedBonus = db.Bonus.Where(o => o.MerchantOrderNo == MerchantOrderNo).FirstOrDefault(); if (UsedBonus != null) { UsedBonus.Status = "active"; db.SaveChanges(); } var Bonus = db.SystemField.Where(o => o.ItemCode == "BS").ToList(); var TotalFee = Bonus.Where(o => o.ItemType == "TotalFee").FirstOrDefault(); double Total = 0; if (TotalFee != null) { Total = double.Parse(TotalFee.ItemValue); } var BuyFee = Bonus.Where(o => o.ItemType == "BuyFee").FirstOrDefault(); double Buy = 0; if (BuyFee != null) { Buy = double.Parse(BuyFee.ItemValue); } var HotelPromo = Bonus.Where(o => o.ItemType == "HotelPromoFee").FirstOrDefault(); double Hotel = 0; if (HotelPromo != null) { Hotel = double.Parse(HotelPromo.ItemValue); } var UpperUser = Bonus.Where(o => o.ItemType == "UpperFee").FirstOrDefault(); double Upper = 0; if (UpperUser != null) { Upper = double.Parse(UpperUser.ItemValue); } var AmtMinLimit = Bonus.Where(o => o.ItemType == "MinLimitAmt").FirstOrDefault(); double MinAmt = 0; if (AmtMinLimit != null) { MinAmt = double.Parse(AmtMinLimit.ItemValue); } //平台總比例裡的5%為發送的部分 var TotalPercent = 0.5; //發送金額 = 訂單金額 * 總比例(13.5)*0.01 var TotalAmt = ((double)OrderAmt * (Total * 0.01)) * TotalPercent; //db.TEST.Add(new TEST { Created = DateTime.Now, Message = string.Format("TotalAmt1:{0}", Total*0.01) }); //db.TEST.Add(new TEST { Created = DateTime.Now, Message = string.Format("TotalAmt:{0}",TotalAmt) }); //消費帳號紅利 = 發送金額 * 0.3 var BuyAmt = Math.Floor(TotalAmt * (Buy * 0.01)); //db.TEST.Add(new TEST { Created = DateTime.Now, Message = string.Format("BuyAmt1:{0}", Buy * 0.01) }); //db.TEST.Add(new TEST { Created = DateTime.Now, Message = string.Format("BuyAmt:{0}", BuyAmt) }); //民宿推薦帳號紅利 = 發送金額 * 0.05 var HotelAmt = Math.Floor(TotalAmt * (Hotel * 0.01)); //db.TEST.Add(new TEST { Created = DateTime.Now, Message = string.Format("HotelAmt1:{0}", Hotel * 0.01) }); //db.TEST.Add(new TEST { Created = DateTime.Now, Message = string.Format("HotelAmt:{0}", HotelAmt) }); //上線平均紅利 = (發送金額 * 0.3)/6 var UpperAmt = Math.Floor((TotalAmt * (Upper * 0.01)) / 6); //db.TEST.Add(new TEST { Created = DateTime.Now, Message = string.Format("HotelAmt1:{0}", Upper * 0.01) }); //db.TEST.Add(new TEST { Created = DateTime.Now, Message = string.Format("UpperAmt:{0}", UpperAmt) }); var LimitAmt = MinAmt; var Today = DateTime.Now; var NextMonth = Today.AddMonths(1); db.TEST.Add(new TEST { Created = Today, Message = NextMonth.ToString() }); db.SaveChanges(); var HotelRecommandID = 0; //更新付款狀態為已付款 var Order = db.OrderMaster.Where(o => o.MerchantOrderNo == MerchantOrderNo).FirstOrDefault(); if (Order != null) { Order.Status = OrderType.Paid.ToString(); var Room = db.Room.Find(Order.ProductId); using (var _db = new ApplicationDbContext()) { var user = _db.Users.Where(o => o.Id == Room.Hotel.UserId).FirstOrDefault(); if (user != null && !string.IsNullOrEmpty(user.Recommend)) { var Recommand = _db.Users.Where(o => o.UserCode == user.Recommend).FirstOrDefault(); if (Recommand != null) { HotelRecommandID = Recommand.Id; } } } } db.MyBonus.Add(new MyBonus { AmtMinLimit = (int)MinAmt, Bonus = (decimal)BuyAmt, Created = Today, OrderAmt = OrderAmt.Value, OrderID = OrderID.Value, PayTime = PayTime.Value, PayStatus = Status, UseMonth = NextMonth, UserID = UserID.Value, MerchantOrderNo = MerchantOrderNo, ParentID = 0, BonusType = BonusTypeEnum.Purchasing.ToString(), BonusStatus = BonusStatusEnum.CanUse.ToString(), Notified = false }); if (HotelRecommandID > 0) { db.MyBonus.Add(new MyBonus { AmtMinLimit = (int)MinAmt, Bonus = (decimal)HotelAmt, Created = Today, OrderAmt = OrderAmt.Value, OrderID = OrderID.Value, PayTime = PayTime.Value, PayStatus = Status, UseMonth = NextMonth, UserID = HotelRecommandID, MerchantOrderNo = MerchantOrderNo, ParentID = 0, BonusType = BonusTypeEnum.HotelRecomend.ToString(), BonusStatus = BonusStatusEnum.CurrentBonus.ToString(), Notified = false }); } var UpperUsers = new UpperUserModel().GETUpperUserList(Order.UserId.Value); var avgAmt = UpperAmt; foreach (var item in UpperUsers) { db.MyBonus.Add(new MyBonus { AmtMinLimit = (int)MinAmt, Bonus = (decimal)avgAmt, Created = Today, OrderAmt = OrderAmt.Value, OrderID = OrderID.Value, PayTime = PayTime.Value, PayStatus = Status, UseMonth = NextMonth, UserID = item.ID, MerchantOrderNo = MerchantOrderNo, ParentID = 0, BonusType = BonusTypeEnum.Recommend.ToString(), BonusStatus = BonusStatusEnum.CurrentBonus.ToString(), Notified = false }); } db.SaveChanges(); } //UpdateExpired(); }
public Caches() : base() { _db = new MyAnythingEntities(); Cache = MemoryCache.Default; }
public List <CalendarEvent> HotelImageUpload(int id) { var db = new MyAnythingEntities(); var Now = DateTime.Now; var Begin = Now.AddDays(1); var End = Now.AddMonths(1); List <CalendarEvent> Events = new List <CalendarEvent>(); Events = (from room in db.RoomPrice where room.ROOMID == id select new CalendarEvent { Start = room.Date, End = room.Date, DayText = room.DayText, DayType = room.DayType }).ToList(); DateTime epoc = new DateTime(1970, 1, 1); List <CalendarEvent> events = new List <CalendarEvent>(); if (Events == null || Events.Count <= 0) { for (var date = Begin; date < End; date = date.AddDays(1.0)) { var beginDay = DateTime.Parse(date.ToShortDateString()); var endDay = DateTime.Parse(date.ToShortDateString()); events.Add(new CalendarEvent { Title = "Event" + id.ToString(), Start = beginDay, End = endDay, DayType = "0" }); } } else { for (var date = Begin; date < End; date = date.AddDays(1.0)) { var beginDay = DateTime.Parse(date.ToShortDateString()); var endDay = DateTime.Parse(date.ToShortDateString()); var DayType = "0"; var Current = Events.Where(o => o.Start == beginDay).FirstOrDefault(); if (Current != null) { DayType = Current.DayType; } else { DayType = "0"; } events.Add(new CalendarEvent { Title = "Event" + id.ToString(), Start = beginDay, End = endDay, DayType = DayType }); } } return(events); }
public ImageHandle() : base() { _db = new MyAnythingEntities(); }
public ImageUploadController() : base() { db = new MyAnythingEntities(); UserFolder = System.Configuration.ConfigurationManager.AppSettings["UserFolder"]; }
public CodeFiles() { _db = new MyAnythingEntities(); }
public BaseController() : base() { _db = new MyAnythingEntities(); }
public AccountingMasterViewModel Query(AccountingSearchModel search = null) { var MasterModel = new AccountingMasterViewModel(); var Today = DateTime.Now; var BeginDate = (search == null || string.IsNullOrEmpty(search.BeginDate) || DateTime.Parse(search.BeginDate) <= DateTime.MinValue) ? Today.ToString("yyyy-MM-01") : search.BeginDate; var EndDate = (search == null || string.IsNullOrEmpty(search.EndDate) || DateTime.Parse(search.EndDate) <= DateTime.MinValue) ? (DateTime.Parse(Today.ToString("yyyy-MM") + "-" + DateTime.DaysInMonth(Today.Year, Today.Month).ToString()).AddSeconds(-1)).ToString() : search.EndDate; var BeginDateOfSearch = DateTime.Parse(BeginDate); var EndDateOfSearch = DateTime.Parse(EndDate); using (var db = new MyAnythingEntities()) { var model = (from hotel in db.Hotel join room in db.Room on hotel.ID equals room.HotelId join order in db.OrderMaster on room.ID equals order.ProductId join pay in db.PayGo on order.MerchantOrderNo equals pay.MerchantOrderNo where (order.Created >= BeginDateOfSearch && order.Created <= EndDateOfSearch) && (UserId <= 0 || hotel.UserId == UserId) && ((string.IsNullOrEmpty(search.Status) || search.Status.ToLower().Trim().Equals("none")) || order.Status == search.Status) && (string.IsNullOrEmpty(search.Keyword) || hotel.Name.Contains(search.Keyword) || room.Name.Contains(search.Keyword)) && (search.HotelId == 0 || search.HotelId == hotel.ID) select new AccountingViewModel { ID = order.ID, Paid = order.PayAmt, Bonus = order.BonusAmt, HotelName = hotel.Name, Income = order.PayAmt - order.BonusAmt, OrderDate = order.Created, OrderId = order.MerchantOrderNo, Quantity = order.Quantity, RoomName = room.Name, Status = order.Status, Amount = order.Amount, }).ToList(); MasterModel.Accounting = model; MasterModel.IncomeTotal = model.Sum(o => o.Income).ToString("#,##0"); MasterModel.AmoutTotal = model.Sum(o => o.Amount).ToString("#,##0"); var AccountingExcel = (from hotel in db.Hotel join room in db.Room on hotel.ID equals room.HotelId join order in db.OrderMaster on room.ID equals order.ProductId join pay in db.PayGo on order.MerchantOrderNo equals pay.MerchantOrderNo where (order.Created >= BeginDateOfSearch && order.Created <= EndDateOfSearch) && (UserId <= 0 || hotel.UserId == UserId) && ((string.IsNullOrEmpty(search.Status) || search.Status.ToLower().Trim().Equals("none")) || order.Status == search.Status) && (string.IsNullOrEmpty(search.Keyword) || hotel.Name.Contains(search.Keyword) || room.Name.Contains(search.Keyword)) && (search.HotelId == 0 || search.HotelId == hotel.ID) select new AccountingExcelModel { 訂單編號 = order.MerchantOrderNo, 訂單日期 = order.Created.ToString(), 旅館 = hotel.Name, 房型 = room.Name, 住址 = hotel.Address, 付款方式 = order.PaymentType, 付款日期 = pay.PayTime.ToString(), 付款狀態 = order.Status, 消費使用紅利抵扣金額 = order.BonusAmt, 消費金額 = order.Amount, 業者實收金額 = pay.Amt, 電話 = hotel.Tel, 實付金額 = (order.Amount - order.BonusAmt), 付款訊息 = pay.Message }).ToList(); HttpContext.Current.Session["AccountingExcel"] = AccountingExcel; return(MasterModel); } }
public List <HotelsViewModel> GetHotels(HotelSearchViewModel model) { if (model.Facility == null) { model.Facility = new List <string>(); } if (model.Scenic == null) { model.Scenic = new List <string>(); } var _db = new MyAnythingEntities(); var result = new List <HotelsViewModel>(); var take = (string.IsNullOrEmpty(model.Price) && model.Facility.Count <= 0) ? 30 : 300; if (model == null || model.BeginDate == DateTime.MinValue) { model.BeginDate = DateTime.Now; } var MinPrice = 0; var MaxPrice = 0; #region ## 價格區間 switch (model.Price) { case "1": MinPrice = 0; MaxPrice = 999; break; case "2": MinPrice = 1000; MaxPrice = 1999; break; case "3": MinPrice = 2000; MaxPrice = 2999; break; case "4": MinPrice = 3000; MaxPrice = 3999; break; case "5": MinPrice = 4000; MaxPrice = 4999; break; case "6": MinPrice = 5000; MaxPrice = 9999999; break; } #endregion result = (from h in _db.Hotel join city in _db.City on h.City equals city.ID join area in _db.Area on h.Area equals area.ID where h.Room.ToList().Count > 0 && ( (string.IsNullOrEmpty(model.Word) || (h.Name.Contains(model.Word))) && (model.City <= 0 || h.City == model.City) && (model.Facility.Count <= 0 || model.Facility.All(w => h.Facility.Contains(w))) && (model.Scenic.Count <= 0 || model.Scenic.All(w => h.Scenics.Contains(w))) ) select new HotelsViewModel { ID = h.ID, Address = h.Address, Location = city.Name + area.Name, Name = h.Name, Feature = h.Feature, Images = h.HotelImage.ToList(), Facility = h.Facility, Scenic = h.Scenics }).OrderBy(o => Guid.NewGuid()).Take(take).ToList(); var RoomAmt = new RoomAmt(); var r_result = new List <HotelsViewModel>(); foreach (var m in result) { var Amts = new List <decimal>(); var Rooms = _db.Room.Where(o => o.HotelId == m.ID).ToList(); foreach (var item in Rooms) { Amts.Add(RoomAmt.CurrentAmt(item.ID)); } m.FixedPrice = Amts.Min(); } _db.Dispose(); if (!string.IsNullOrEmpty(model.Price)) { result = result.Where(o => o.FixedPrice >= MinPrice && o.FixedPrice <= MaxPrice).Take(30).ToList(); } return(result); }
public void BonusNotice() { var Today = DateTime.Now; var CurrentDate = Today.ToString("dd"); var Date = "25"; var NextDate = "26"; if (!CurrentDate.Equals(Date) && !CurrentDate.Equals(NextDate)) { return; } var db = new MyAnythingEntities(); var unPaid = OrderType.Unpaid.ToString(); var Notice = new BonusNoticeViewModel().QueryFor25Date(); var NoticeContent = Notice.ItemDescription; var Notices = db.MyBonus.Where(o => o.Notified == false && o.Created.Year == Today.Year && o.Created.Month == Today.Month).ToList(); var result = db.MyBonus.GroupBy(o => o.UserID) .Select(g => new { UserID = g.Key, total = g.Sum(i => i.Bonus) }); var Noticed = new List <int>(); foreach (var notice in Notices) { try { if (Noticed == null || !Noticed.Any(o => o == notice.UserID)) { var User = new ApplicationDbContext2().Users.Where(o => o.Id == notice.UserID).FirstOrDefault(); var UserOfSum = result.Where(o => o.UserID == notice.UserID).FirstOrDefault(); var Sum = 0M; if (UserOfSum != null) { Sum = UserOfSum.total; } if (User != null) { NoticeContent = NoticeContent.Replace("{{姓名}}", User.UserName); NoticeContent = NoticeContent.Replace("{{當月份}}", notice.Created.Month.ToString()); NoticeContent = NoticeContent.Replace("{{使用月份}}", notice.UseMonth.Month.ToString()); NoticeContent = NoticeContent.Replace("{{總紅利}}", Sum.ToString("#.##0")); NoticeContent = NoticeContent.Replace("{{紅利入帳需消費金額}}", notice.AmtMinLimit.ToString()); } var From = ConfigurationManager.AppSettings["From"]; var Password = ConfigurationManager.AppSettings["SmtpPassword"]; var SmtpUserName = ConfigurationManager.AppSettings["SmtpUserName"]; var Port = int.Parse(ConfigurationManager.AppSettings["SmtpPort"]); var SmtpServer = ConfigurationManager.AppSettings["SmtpServer"]; SmtpClient smtpClient = new SmtpClient(SmtpServer, Port); smtpClient.Credentials = new System.Net.NetworkCredential(From, Password); //smtpClient.UseDefaultCredentials = true; smtpClient.EnableSsl = true; MailMessage mail = new MailMessage(); mail.Body = NoticeContent; mail.Subject = Notice.ItemValue; mail.IsBodyHtml = true; mail.SubjectEncoding = System.Text.Encoding.UTF8; mail.Priority = MailPriority.Normal; mail.From = new MailAddress(From, SmtpUserName); mail.To.Add(new MailAddress(User.Email)); smtpClient.Send(mail); smtpClient = null; mail.Dispose(); Noticed.Add(UserOfSum.UserID); } }catch (Exception ex) { db.SystemLog.Add(new SystemLog { Created = DateTime.Now, Creator = "Sys", LogDescription = "紅利通知發送錯誤", LogValue = ex.Message.ToString(), LogCode = "Error", LogType = "Error", IP = string.Empty }); db.SaveChanges(); } finally { foreach (var item in Notices) { item.Notified = true; db.SaveChanges(); } } } db.Dispose(); }
public void PayOfFeedBack(string MerchantTradeNo) { List <string> enErrors = new List <string>(); Hashtable htFeedback = null; try { using (AllInOne oPayment = new AllInOne()) { /* 服務參數 */ oPayment.ServiceMethod = HttpMethod.ServerPOST; // 或使用 HttpMethod.HttpSOAP; oPayment.ServiceURL = "https://payment.allpay.com.tw/Cashier/QueryTradeInfo/V2"; oPayment.HashKey = HashKey; oPayment.HashIV = HashIV; oPayment.MerchantID = MerchantID; /* 基本參數 */ oPayment.Query.MerchantTradeNo = MerchantTradeNo; /* 查詢訂單 */ enErrors.AddRange(oPayment.QueryTradeInfo(ref htFeedback)); } // 取回所有資料 if (enErrors.Count() == 0) { /* 查詢後的回傳的基本參數 */ string szMerchantID = String.Empty; string szMerchantTradeNo = String.Empty; string szTradeNo = String.Empty; string szTradeAmt = String.Empty; string szPaymentDate = String.Empty; string szPaymentType = String.Empty; string szHandlingCharge = String.Empty; string szPaymentTypeChargeFee = String.Empty; string szTradeDate = String.Empty; string szTradeStatus = String.Empty; string szItemName = String.Empty; /* 使用 WebATM 交易時,回傳的額外參數 */ string szWebATMAccBank = String.Empty; string szWebATMAccNo = String.Empty; /* 使用 ATM 交易時,回傳的額外參數 */ string szATMAccBank = String.Empty; string szATMAccNo = String.Empty; /* 使用 CVS 交易時,回傳的額外參數 */ string szPaymentNo = String.Empty; string szPayFrom = String.Empty; /* 使用 Tenpay 交易時,回傳的額外參數 */ string szTenpayTradeNo = String.Empty; /* 使用 Credit 交易時,回傳的額外參數 */ string szGwsr = String.Empty; string szProcessDate = String.Empty; string szAuthCode = String.Empty; string szAmount = String.Empty; string szStage = String.Empty; string szStast = String.Empty; string szStaed = String.Empty; string szECI = String.Empty; string szCard4No = String.Empty; string szCard6No = String.Empty; string szRedDan = String.Empty; string szRedDeAmt = String.Empty; string szRedOkAmt = String.Empty; string szRedYet = String.Empty; string szPeriodType = String.Empty; string szFrequency = String.Empty; string szExecTimes = String.Empty; string szPeriodAmount = String.Empty; string szTotalSuccessTimes = String.Empty; string szTotalSuccessAmount = String.Empty; // 取得資料於畫面 foreach (string szKey in htFeedback.Keys) { switch (szKey) { /* 查詢後的回傳的基本參數 */ case "MerchantID": szMerchantID = htFeedback[szKey].ToString(); break; case "MerchantTradeNo": szMerchantTradeNo = htFeedback[szKey].ToString(); break; case "TradeNo": szTradeNo = htFeedback[szKey].ToString(); break; case "TradeAmt": szTradeAmt = htFeedback[szKey].ToString(); break; case "PaymentDate": szPaymentDate = htFeedback[szKey].ToString(); break; case "PaymentType": szPaymentType = htFeedback[szKey].ToString(); break; case "HandlingCharge": szHandlingCharge = htFeedback[szKey].ToString(); break; case "PaymentTypeChargeFee": szPaymentTypeChargeFee = htFeedback[szKey].ToString(); break; case "TradeDate": szTradeDate = htFeedback[szKey].ToString(); break; case "TradeStatus": szTradeStatus = htFeedback[szKey].ToString(); break; case "ItemName": szItemName = htFeedback[szKey].ToString(); break; /* 使用 WebATM 交易時回傳的參數 */ case "WebATMAccBank": szWebATMAccBank = htFeedback[szKey].ToString(); break; case "WebATMAccNo": szWebATMAccNo = htFeedback[szKey].ToString(); break; /* 使用 ATM 交易時回傳的參數 */ case "ATMAccBank": szATMAccBank = htFeedback[szKey].ToString(); break; case "ATMAccNo": szATMAccNo = htFeedback[szKey].ToString(); break; /* 使用 CVS 交易時回傳的參數 */ case "PaymentNo": szPaymentNo = htFeedback[szKey].ToString(); break; case "PayFrom": szPayFrom = htFeedback[szKey].ToString(); break; /* 使用 Tenpay 交易時回傳的參數 */ case "TenpayTradeNo": szTenpayTradeNo = htFeedback[szKey].ToString(); break; /* 使用 Credit 交易時回傳的參數 */ case "gwsr": szGwsr = htFeedback[szKey].ToString(); break; case "process_date": szProcessDate = htFeedback[szKey].ToString(); break; case "auth_code": szAuthCode = htFeedback[szKey].ToString(); break; case "amount": szAmount = htFeedback[szKey].ToString(); break; case "stage": szStage = htFeedback[szKey].ToString(); break; case "stast": szStast = htFeedback[szKey].ToString(); break; case "staed": szStaed = htFeedback[szKey].ToString(); break; case "eci": szECI = htFeedback[szKey].ToString(); break; case "card4no": szCard4No = htFeedback[szKey].ToString(); break; case "card6no": szCard6No = htFeedback[szKey].ToString(); break; case "red_dan": szRedDan = htFeedback[szKey].ToString(); break; case "red_de_amt": szRedDeAmt = htFeedback[szKey].ToString(); break; case "red_ok_amt": szRedOkAmt = htFeedback[szKey].ToString(); break; case "red_yet": szRedYet = htFeedback[szKey].ToString(); break; case "PeriodType": szPeriodType = htFeedback[szKey].ToString(); break; case "Frequency": szFrequency = htFeedback[szKey].ToString(); break; case "ExecTimes": szExecTimes = htFeedback[szKey].ToString(); break; case "PeriodAmount": szPeriodAmount = htFeedback[szKey].ToString(); break; case "TotalSuccessTimes": szTotalSuccessTimes = htFeedback[szKey].ToString(); break; case "TotalSuccessAmount": szTotalSuccessAmount = htFeedback[szKey].ToString(); break; default: break; } } using (var db = new MyAnythingEntities()) { var order = db.OrderMaster.Where(o => o.MerchantOrderNo == MerchantTradeNo).FirstOrDefault(); if (order != null) { order.TradeNo = szTradeNo; order.TradeStatus = szTradeStatus; order.PaymentType = szPaymentType; db.SaveChanges(); } } } } catch (Exception ex) { // 例外錯誤處理。 enErrors.Add(ex.Message); } finally { // 顯示錯誤訊息。 if (enErrors.Count() > 0) { string szErrorMessage = String.Join("\\r\\n", enErrors); } } }