public void SearchOrdersWithQuotesSearchesCorrectlyAndPreventsInjection() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow(); ordersRowA.OrderId = 1; ordersRowA.OrderName = "Order A's"; ordersRowA.Description = "Description A"; ordersRowA.Approver = "User"; ordersRowA.Creator = "User"; ordersRowA.OrderStatus = (int)OrderStatusEnum.Draft; ds.Orders.AddOrdersRow(ordersRowA); OrdersManagementDataSet.OrdersRow ordersRowB = ds.Orders.NewOrdersRow(); ordersRowB.OrderId = 2; ordersRowB.OrderName = "Order B"; ordersRowB.Description = "Description B"; ordersRowB.Approver = "User"; ordersRowB.Creator = "User"; ordersRowB.OrderStatus = (int)OrderStatusEnum.Draft; ds.Orders.AddOrdersRow(ordersRowB); ds.AcceptChanges(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); ICollection<Order> orders = ordersService.SearchOrders("'"); Assert.AreEqual(1, orders.Count); IEnumerator<Order> enumerator = orders.GetEnumerator(); enumerator.Reset(); enumerator.MoveNext(); Assert.AreEqual(1, enumerator.Current.OrderId); }
/// <summary> /// 开始计时 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { if (b) { return; } //设置timer不可用 timer.Stop();// //传输数据 try { #region 输数据 // LoginService loginservice = new LoginService(); OrdersService orderservice = new OrdersService(); OrderbarcodeService orderbarcodeservice = new OrderbarcodeService(); Stopwatch sw = new Stopwatch(); //调用登陆验证方法(string Login(UserName: string; Password: string; Operator: string))返回SID //UserName,Password来源配置文件,Operator为空 string username = ConfigurationManager.AppSettings["UserName"]; string password = ConfigurationManager.AppSettings["Password"]; string Operator = ConfigurationManager.AppSettings["Operator"]; SendOrdersToLis.CenterServiceSoapClient client = new SendOrdersToLis.CenterServiceSoapClient(); sw.Start(); // int t = 0; string strM = ""; //按分点查找 List <Dictlab> labLst = labser.GetDictlabList().Where(c => c.IsActive == '1').ToList <Dictlab>(); #region foreach (Dictlab dictlab in labLst) { //查询分点下面有没有数据 DataTable dt = orderservice.GetOrderToLis(dictlab.Dictlabid);// orderservice.GetOrderToLis(dictlab.Dictlabid); if (dt.Rows.Count > 0) { if (!ht.ContainsKey(dictlab.Labcode)) { string strsid = client.Login(dictlab.Labcode, username, password, Operator); if (strsid.Split('|')[0] == "1") { strsid = strsid.Split('|')[1]; ht.Add(dictlab.Labcode, strsid); } else { string strS01 = String.Format("{0}登录失败!\n{1}", dictlab.Labname, strsid.Split('|')[1]); SetTB(strS01); continue; //return; } } #region dt.TableName = "data_row"; string strxml = DataToXml.CDataToXml(dt);//将订单信息转换成xml形式的字符串 //根据SID,分点,及分点下的订单信息(xml字符串形式)调用Webservice上传数据到Lis string strmessage = client.SendRequestInfo(ht[dictlab.Labcode].ToString(), dictlab.Labcode, StringToXML(strxml)); if (strmessage.Contains("MSG0006")) //登陆超时 { ht.Remove(dictlab.Labcode); SetTB(dictlab.Labname + " 登录超时!"); continue; } else { string[] strsp = strmessage.Split(','); #region for for (int k = 0; k < strsp.Length - 1; k++) { string[] s = strsp[k].Split('|'); if (s[3] == "0") { strM += String.Format("{0} 达安条码[{1}],上传成功!\n", dictlab.Labname, s[0]); //上传后 如果成功就跟新orderbarcode中transed=1并给出成功提示信息,如果失败则给出失败信息 orderbarcodeservice.UpdateTransedToLis(s[0]); } else { string[] g = s[3].Split('/'); #region for for (int i = 0; i < g.Length - 1; i++) { if (g[i] == "MSG1001") { strM += "申请信息不全,达安条码、医院条码、标本唯一标识不能全为空;"; } if (g[i] == "MSG1002") { strM += String.Format("达安条码[{0}],申请信息姓名、性别、年龄必填项,有空值;", s[0]); } if (g[i] == "MSG1003") { strM += String.Format("达安条码[{0}],有匹配不正确的达安项目代码;", s[0]); } if (g[i] == "MSG1004") { strM += String.Format("达安条码[{0}],年龄格式不正确;", s[0]); } if (g[i] == "MSG1005") { strM += String.Format("达安条码[{0}],采样时间不能转换成时间格式;", s[0]); } if (g[i] == "MSG1007") { strM += String.Format("达安条码[{0}],病人电话格式错误;", s[0]); } if (g[i] == "MSG1008") { strM += String.Format("达安条码[{0}],医生电话格式错误;", s[0]); } if (g[i] == "MSG1009") { strM += String.Format("达安条码[{0}],病理标本、细菌标本必须单独信息;", s[0]); } if (g[i] == "MSG1010") { strM += String.Format("达安条码[{0}],性别必须为M或者F或者U;", s[0]); } } #endregion //失败信息,更新orderbarcode中transed=2 if (s[0] != null && s[0] != "") { orderbarcodeservice.UpdateTransedToLisFail(s[0]); } } } #endregion SetTB(strM); strM = null; } #endregion } else { string str2 = dictlab.Labname + "没有传输的数据!\n"; SetTB(str2); } #endregion sw.Stop(); } #endregion } catch (Exception ex) { string exmessage = String.Format("{0}: {1}", DateTime.Now, ex.Message); SetTB(exmessage); CreateErrorLog(exmessage); } finally { //设置timer可用 timer.Start(); } }
public BurgerController(OrdersService orderService, CloudStorage cloudStorage) { OrderService = orderService; CloudStorage = cloudStorage; }
public OrdersController(OrdersService os) { _os = os; }
/// <summary> /// /// </summary> /// <param name="e"></param> /// <returns></returns> private async static Task CallBack(CallbackQueryEventArgs e) { var lang = new DataContext().Languages.FirstOrDefault(f => f.ChatId == e.CallbackQuery.From.Id); var langId = lang != null ? lang.LanguageId : 1; var client = await ClientService.GetByChatId(e.CallbackQuery.From.Id); var count = 0; var calback = e.CallbackQuery.Data.IndexOf("_"); var eventmassive = e.CallbackQuery.Data.Split("_"); if (client != null && client.IsActive == true) { switch (e.CallbackQuery.Data) { case "confirm": SendLocation(e); break; case "order": SendConfirms(e); break; case "cancel": OrderCancel(e); break; case "done": DoneOrder(e); break; case "setLang": CallbackLang(e); break; case "paynaqt": SendToCompany(e); break; case "paycard": SendToCompany(e); break; case "back": InliniButtonForServices(e); break; case "til1": ChangeLanguage(e); break; case "til2": ChangeLanguage(e); break; case "dontaddSuxoyPar": SendConfirms(e); break; } if (calback != -1) { AddSuxoyPar(e, eventmassive); } else if (await OrdersService.GetByPositionChatIdService(e.CallbackQuery.From.Id, 1, Convert.ToInt32(e.CallbackQuery.Data)) == null) { AddOrders(e); } else if (await OrdersService.GetByPositionChatIdService(e.CallbackQuery.From.Id, 1, Convert.ToInt32(e.CallbackQuery.Data)) != null) { await Bot.AnswerCallbackQueryAsync( callbackQueryId : e.CallbackQuery.Id, text : langId == 1? "Bu servisni tanlangan!" : "Эта услуга выбрана!", showAlert : false); } Bot.AnswerCallbackQueryAsync( callbackQueryId: e.CallbackQuery.Id, text: langId == 1 ? "Jo'natildi" : "Отправлено", showAlert: false); } else { await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "Bot active bo'magan"); } }
public void SubmitOrderSetsOrdersStatusToSubmitted() { Order order = GetPopulatedOrder(); order.OrderStatus = 0; OrdersService ordersService = new OrdersService(new OrdersManagementDataSet(), new FakeProductService()); ordersService.SubmitOrder(order); Assert.AreEqual((int)OrderStatusEnum.Submitted, order.OrderStatus); }
private OrdersService CreateOrdersService() { var ordersService = new OrdersService(); return(ordersService); }
public OrdersController(OrdersService oServ) { _orderSrv = oServ; }
public OrdersController(IConfiguration configuration) { var connectionString = configuration.GetConnectionString("ConnectionString"); this.OrdersService = new OrdersService(new OrdersRepository(connectionString)); }
public void CanCreateInstanceWithoutPassingRepositoryToConstructor() { OrdersService service = new OrdersService(new FakeProductService()); Assert.IsNotNull(service); }
public void DeleteUnexistingOrderThrowsException() { OrdersService ordersService = new OrdersService(new OrdersManagementDataSet(), new FakeProductService()); ordersService.DeleteOrder(1234); }
public OrdersController(OrdersService orderservice, IGymBuddyRepository repository, IMapper mapper) { _repository = repository; _mapper = mapper; _orderService = orderservice; }
public override void Initialize() => _service = new OrdersService();
private long? Add(int docNum, string ccy, DateTime date, string accountIBAN, decimal amount, string purpose, string cashDeskSymbol, int userId) { #region OrdersService OrdersService o = new OrdersService(); o.RequestHeadersValue = new OrdersAPI.RequestHeaders() { ApplicationKey = "BusinessCreditClient", RequestId = DateTime.Now.ToLongTimeString() }; #endregion #region CustomersService CustomersService c = new CustomersService(); c.RequestHeadersValue = new CustomersAPI.RequestHeaders() { ApplicationKey = "BusinessCreditClient", RequestId = DateTime.Now.ToLongTimeString() }; #endregion #region CustomersService AccountsService a = new AccountsService(); a.RequestHeadersValue = new AccountsAPI.RequestHeaders() { ApplicationKey = "BusinessCreditClient", RequestId = DateTime.Now.ToLongTimeString() }; #endregion var acc = a.GetAccount(AccountControlFlags.Basic, true, new AccountsAPI.InternalAccountIdentification() { IBAN = accountIBAN }, ccy); var cus = c.GetCustomer(CustomerControlFlags.Basic, true, acc.CustomerId.Value, true); var cusEntity = cus.Entity as IndividualEntity; #region Variables long id; bool specified; #endregion #region Order Init var Order = new CashOrderData { Amount = new OrdersAPI.AmountAndCurrency { Amount = amount, Ccy = ccy }, Date = date, Status = OrdersAPI.TransactionStatus.Green, StatusSpecified = true, TransactionCode = "qwe34242342", //09 OpCode = "120", Purpose = purpose, //ExtraAccount = 0, //ExtraAccountSpecified = false, CustomerAccount = new OrdersAPI.InternalAccountIdentification { IBAN = accountIBAN }, OrderDate = date, OrderDateSpecified = true, Type = CashOrderType.Deposit, Customer = new CustomerData { Name = (OrdersAPI.PersonName)cusEntity.Name }, //DeptId = 5, //DeptIdSpecified = true, DocNum = 555847, DocNumSpecified = docNum == 0 ? false : true }; cusEntity = (c.GetCustomer(CustomerControlFlags.IdentityDocuments, true, acc.CustomerId.Value, true).Entity as IndividualEntity); Order.Customer.IdentityDocument = (OrdersAPI.IdentityDocument)cusEntity.IdentityDocuments[0]; #endregion #region Put Order o.PutOrder(new OrdersAPI.UserAndDeptId() { DeptId = 2, DeptIdSpecified = true, UserIdentification = new OrdersAPI.UserIdentification() { Id = 21, IdSpecified = true } }, 0, false, new Guid().ToString(), true, true, false, true, Order, out id, out specified); #endregion return id; }
public void SubmitOrderAddsOrderDetails() { Order order = GetPopulatedOrder(); order.OrderId = 0; OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); order.Details.Add(new OrderDetail(0, 10, 1, 1.99m)); int detailsCount = order.Details.Count; ordersService.SaveAsDraft(order); Assert.AreEqual(detailsCount, ds.OrderDetails.Count); OrdersManagementDataSet.OrderDetailsRow detailRow = ds.OrderDetails.FindByOrderIdProductId(order.OrderId, 10); Assert.IsNotNull(detailRow); Assert.AreEqual((short)1, detailRow.Quantity); }
public void CanCreateInstanceWithoutPassingRepositoryToConstructor() { OrdersService service = new OrdersService(new FakeProductService()); Assert.IsNotNull(service); }
public void SubmitOrderSetsOrdersDate() { Order order = GetPopulatedOrder(); order.OrderStatus = 0; OrdersService ordersService = new OrdersService(new OrdersManagementDataSet(), new FakeProductService()); ordersService.SubmitOrder(order); Assert.IsNotNull(order.OrderDate); }
public void DeleteNonDraftOrderThrowsException() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow(); ordersRowA.OrderId = 1; ordersRowA.OrderName = "Order A"; ordersRowA.Description = "Description A"; ordersRowA.Approver = "User"; ordersRowA.Creator = "User"; ordersRowA.OrderStatus = (int)OrderStatusEnum.Submitted; ds.Orders.AddOrdersRow(ordersRowA); ds.AcceptChanges(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); ordersService.DeleteOrder(1); }
public JsonResult getOrders(string pageSize, string page, string name, string oid, string community, string area, string unitType, string duration, string rent, string floor, string time, string state ) { List <OrdersUserHouse> ouhList = OrdersUserHouseService.LoadEntities(o => true).ToList(); List <OrdersUserHouseEntity> entity = new List <OrdersUserHouseEntity>(); foreach (OrdersUserHouse item in ouhList) { Orders orders = OrdersService.LoadEntities(o => o.oid == item.oid).FirstOrDefault(); User user = UserService.LoadEntities(o => o.uid == item.uid).FirstOrDefault(); int uiid = UserUserInfoService.LoadEntities(u => u.uid == user.uid).FirstOrDefault().uiid; UserInfo userInfo = UserInfoService.LoadEntities(u => u.uiid == uiid).FirstOrDefault(); House house = HouseService.LoadEntities(h => h.hid == item.hid).FirstOrDefault(); entity.Add(new OrdersUserHouseEntity() { name = userInfo.name, phone = userInfo.phone, duration = orders.duration, rent = orders.rent, state = orders.state, time = orders.time, ouhid = item.ouhid, hid = house.hid, community = house.community, unitType = house.unitType, area = house.area, oid = orders.oid, floor = house.floor }); } int pageInt = Convert.ToInt32(page); int pageSizeInt = Convert.ToInt32(pageSize); if (!string.IsNullOrWhiteSpace(state)) { //int oidInt = Convert.ToInt32(oid); entity = entity.Where(u => u.state == state).ToList(); } //time = time.Replace("-",""); // 20210326 if (!string.IsNullOrWhiteSpace(time)) { time = time.Substring(0, 10).Replace("-", ""); DateTime itemDate = DateTime.ParseExact(time, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture); itemDate = itemDate.AddDays(1); string formatDate = itemDate.ToString("yyyyMMdd"); //int oidInt = Convert.ToInt32(oid); entity = entity.Where(u => u.time == formatDate).ToList(); } if (!string.IsNullOrWhiteSpace(oid)) { int oidInt = Convert.ToInt32(oid); entity = entity.Where(u => u.oid == oidInt).ToList(); } if (!string.IsNullOrWhiteSpace(area)) { int areaInt = Convert.ToInt32(area); entity = entity.Where(u => u.area == areaInt).ToList(); } if (!string.IsNullOrWhiteSpace(duration)) { int durationInt = Convert.ToInt32(duration); entity = entity.Where(u => u.duration == durationInt).ToList(); } if (!string.IsNullOrWhiteSpace(rent)) { int rentInt = Convert.ToInt32(rent); entity = entity.Where(u => u.rent == rentInt).ToList(); } if (!string.IsNullOrWhiteSpace(name)) { entity = entity.Where(u => u.name.Contains(name)).ToList(); } if (!string.IsNullOrWhiteSpace(community)) { entity = entity.Where(u => u.community.Contains(community)).ToList(); } if (!string.IsNullOrWhiteSpace(unitType)) { entity = entity.Where(u => u.unitType.Contains(unitType)).ToList(); } if (!string.IsNullOrWhiteSpace(floor)) { entity = entity.Where(u => u.floor.Contains(floor)).ToList(); } int total = entity.Count; entity = entity.Skip((pageInt - 1) * pageSizeInt).Take(pageSizeInt).ToList(); return(Json(new { entity = entity, total = total }, JsonRequestBehavior.AllowGet)); }
public void DeleteRemovesOnlyExpectedOrderFromRepository() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow(); ordersRowA.OrderId = 3; ordersRowA.OrderName = "Order A"; ordersRowA.Description = "Description A"; ordersRowA.Approver = "User"; ordersRowA.Creator = "User"; ordersRowA.OrderStatus = (int)OrderStatusEnum.Draft; ds.Orders.AddOrdersRow(ordersRowA); OrdersManagementDataSet.OrdersRow ordersRowB = ds.Orders.NewOrdersRow(); ordersRowB.OrderId = 2; ordersRowB.OrderName = "Order B"; ordersRowB.Description = "Description B"; ordersRowB.Approver = "User"; ordersRowB.Creator = "User"; ordersRowB.OrderStatus = (int)OrderStatusEnum.Submitted; ds.Orders.AddOrdersRow(ordersRowB); ds.AcceptChanges(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); ordersService.DeleteOrder(3); Assert.AreEqual(1, ds.Orders.Count); Assert.AreEqual(2, ds.Orders[0].OrderId); }
public IHttpActionResult POST() { try { //設定ChannelAccessToken(或抓取Web.Config) this.ChannelAccessToken = channelAccessToken; //取得Line Event(範例,只取第一個) var LineEvent = this.ReceivedMessage.events.FirstOrDefault(); //JSON轉成物件 isRock.LineBot.Bot bot = new isRock.LineBot.Bot("0A/dwcLNYoarvmtMAuIiXl745SBEYWOq1FZtg0feMY5e+bUIBVG5SOh8V7oUjlE8xA3etOVliIFz7NZNF1ZXZMt/2dn/MU6+p+YmrOboCtW0JkoSmiCVZebxOc3dyKljZaVV9XWfHvcBOq4wSki8OAdB04t89/1O/w1cDnyilFU="); //配合Line verify if (LineEvent.replyToken == "00000000000000000000000000000000") { return(Ok()); } //回覆訊息 string lineID = ReceivedMessage.events.FirstOrDefault().source.userId; var userid = bot.GetUserInfo(lineID).displayName; var model = new Products(); var service = new OrdersService(); var repository = new OrdersRepository(); if (LineEvent.type == "message") { if (LineEvent.message.type == "text") //收到文字 { if (LineEvent.message.text.ToLower() == "銷售額多少") { //建立actions, 作為ButtonTemplate的用戶回覆行為 var actions = new List <isRock.LineBot.TemplateActionBase>(); actions.Add(new isRock.LineBot.MessageAction() { label = "年", text = "年" }); actions.Add(new isRock.LineBot.MessageAction() { label = "半年", text = "半年" }); actions.Add(new isRock.LineBot.MessageAction() { label = "月", text = "月" }); actions.Add(new isRock.LineBot.MessageAction() { label = "日", text = "日" }); var ButtonTempalteMsg = new isRock.LineBot.ButtonsTemplate() { title = "請選擇", text = "以下選項", altText = "請在手機上檢視", thumbnailImageUrl = new Uri("https://i.imgur.com/waYRM42.jpg"), actions = actions }; this.ReplyMessage(LineEvent.replyToken, ButtonTempalteMsg); } if (LineEvent.message.text.ToLower() == "年") { DateTime from = new DateTime(2018, 1, 1); DateTime to = new DateTime(2018, 12, 31); var year = repository.GetByOrder_Date(from, to); this.ReplyMessage(LineEvent.replyToken, year.Sum(x => x.Total).ToString().ToLower() + "元"); } if (LineEvent.message.text.ToLower() == "半年") { DateTime from = new DateTime(2018, 1, 1); DateTime to = new DateTime(2018, 6, 30); var year = repository.GetByOrder_Date(from, to); this.ReplyMessage(LineEvent.replyToken, year.Sum(x => x.Total) + "元"); } if (LineEvent.message.text.ToLower() == "月") { DateTime from = new DateTime(2018, 6, 1); DateTime to = new DateTime(2018, 6, 30); var year = repository.GetByOrder_Date(from, to); this.ReplyMessage(LineEvent.replyToken, year.Sum(x => x.Total).ToString() + "元"); } if (LineEvent.message.text.ToLower() == "日") { DateTime from = new DateTime(2018, 6, 20, 0, 0, 0); DateTime to = new DateTime(2018, 6, 20, 23, 59, 59); var year = repository.GetByOrder_Date(from, to); this.ReplyMessage(LineEvent.replyToken, year.Sum(x => x.Total).ToString() + "元"); } if (LineEvent.message.text.ToLower() == "商品") { //建立actions, 作為ConfirmTemplate的用戶回覆行為 var actions = new List <isRock.LineBot.TemplateActionBase>(); actions.Add(new isRock.LineBot.MessageAction() { label = "最熱銷", text = "最熱銷" }); actions.Add(new isRock.LineBot.MessageAction() { label = "最滯銷", text = "最滯銷" }); var ConfirmTemplate = new isRock.LineBot.ConfirmTemplate() { text = "請選擇", altText = "請在手機上檢視", actions = actions }; this.ReplyMessage(LineEvent.replyToken, ConfirmTemplate); } if (LineEvent.message.text == "最熱銷" || LineEvent.message.text == "最滯銷") { var a3 = ""; var b = ""; var c = ""; // var product = repository.GetProductTop9(); int a9; if (LineEvent.message.text == "最熱銷") { b = "最熱銷"; c = "DESC"; } else { b = "最滯銷"; c = "ASC"; } var product = repository.GetProductTop9(c); if (LineEvent.message.text == "最熱銷") { a9 = product.Max(x => x.count); } else { a9 = product.Min(x => x.count); } foreach (var i in product) { if (i.count == a9) { a3 += i.Product_Name.ToString() + " \n"; } } this.ReplyMessage(LineEvent.replyToken, $"{b} : \n{a3}"); } if (LineEvent.message.text == "庫存少於的商品有哪些") { //建立actions, 作為ButtonTemplate的用戶回覆行為 var actions = new List <isRock.LineBot.TemplateActionBase>(); actions.Add(new isRock.LineBot.MessageAction() { label = "5項", text = "5" }); actions.Add(new isRock.LineBot.MessageAction() { label = "10項", text = "10" }); actions.Add(new isRock.LineBot.MessageAction() { label = "15項", text = "15" }); var ButtonTempalteMsg = new isRock.LineBot.ButtonsTemplate() { title = "請選擇", text = "以下選項", altText = "請在手機上檢視", thumbnailImageUrl = new Uri("https://i.imgur.com/waYRM42.jpg"), actions = actions }; this.ReplyMessage(LineEvent.replyToken, ButtonTempalteMsg); } // if (LineEvent.message.text == "5" || LineEvent.message.text == "10" || LineEvent.message.text == "15") int s; if (int.TryParse(LineEvent.message.text, out s)) { // var s = int.Parse(LineEvent.message.text); var product = repository.GetStock(s); var a1 = ""; foreach (var i in product) { a1 += $"商品編號 : {i.Product_ID} 商品名稱 : {i.Product_Name} 尺寸 : {i.Size} 顏色 : {i.Color} 數量 : {i.Quantity} , \n"; } try { this.ReplyMessage(LineEvent.replyToken, $"商品庫存 : \n{a1}"); } catch { this.ReplyMessage(LineEvent.replyToken, $"商品庫存 : 只能在0~15內"); } } } if (LineEvent.message.type == "sticker") { this.ReplyMessage(LineEvent.replyToken, 1, 2); } if (LineEvent.message.type == "location") { this.ReplyMessage(LineEvent.replyToken, $"你的位置在\n{LineEvent.message.latitude}, {LineEvent.message.longitude}"); } if (LineEvent.message.type == "image") { //取得圖片Bytes var bytes = this.GetUserUploadedContent(LineEvent.message.id); var guid = Guid.NewGuid().ToString(); var filename = $"{guid}.png"; var path = System.Web.Hosting.HostingEnvironment.MapPath("~/temp/"); System.IO.File.WriteAllBytes(path + filename, bytes); //取得base URL var baseUrl = Request.RequestUri.GetLeftPart(UriPartial.Authority); //組出外部可以讀取的檔名 var url = $"{baseUrl}/temp/{filename}"; this.ReplyMessage(LineEvent.replyToken, $"你的圖片位於\n {url}"); } } if (LineEvent.type == "postback") { var data = LineEvent.postback.data; var date = LineEvent.postback.Params.date; this.ReplyMessage(LineEvent.replyToken, $"你的postback資料為:{data}\n選擇結果:{date}"); } //response OK return(Ok()); } catch (Exception ex) { //如果發生錯誤,傳訊息給Admin this.PushMessage(AdminUserId, "發生錯誤:\n" + ex.Message); //response OK return(Ok()); } }
public void DeleteRemovesOrderDetailsFromRepository() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersManagementDataSet.OrdersRow ordersRow = ds.Orders.NewOrdersRow(); ordersRow.OrderId = 2; ordersRow.Approver = "CurrentUser"; ordersRow.Creator = "CurrentUser"; ordersRow.OrderName = "Test Order"; ordersRow.OrderStatus = (int)OrderStatusEnum.Draft; ds.Orders.AddOrdersRow(ordersRow); OrdersManagementDataSet.OrderDetailsRow detailRow = ds.OrderDetails.NewOrderDetailsRow(); detailRow.OrdersRow = ordersRow; detailRow.ProductId = 11; detailRow.Quantity = 3; ds.OrderDetails.AddOrderDetailsRow(detailRow); ds.AcceptChanges(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); ordersService.DeleteOrder(2); Assert.AreEqual(0, ds.Orders.Count); Assert.AreEqual(0, ds.OrderDetails.Count); }
public OrderStateChangedHandler(OrdersService orderService) { _orderService = orderService; }
public void DeleteRemovesOrderFromRepository() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow(); ordersRowA.OrderId = 1; ordersRowA.OrderName = "Order A"; ordersRowA.Description = "Description A"; ordersRowA.Approver = "User"; ordersRowA.Creator = "User"; ordersRowA.OrderStatus = (int)OrderStatusEnum.Draft; ds.Orders.AddOrdersRow(ordersRowA); ds.AcceptChanges(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); ordersService.DeleteOrder(1); Assert.AreEqual(0, ds.Orders.Count); }
public void AddOrderWithGift() { var ordersRepository = new Mock <IOrdersRepository>(); var productsRepository = new Mock <IProductsRepository>(); var customersRepository = new Mock <ICustomersRepository>(); var customer = new Customer { Id = 11 }; var firstProduct = new Product { Id = 456, Prices = new List <Price> { new Price { ProductId = 456, Currency = new Currency { Id = 1 }, Amount = 999M } } }; var secondProduct = new Product { Id = 2435, Prices = new List <Price> { new Price { ProductId = 2435, Currency = new Currency { Id = 1 }, Amount = 10500M } } }; var gift = new Product { Id = 6, Prices = new List <Price> { new Price { ProductId = 6, Currency = new Currency { Id = 1 }, Amount = 0 } } }; customersRepository.Setup(x => x.GetById(11)).Returns(customer); productsRepository.Setup(x => x.GetById(456)).Returns(firstProduct); productsRepository.Setup(x => x.GetById(2435)).Returns(secondProduct); productsRepository.Setup(x => x.GetGift()).Returns(gift); var order = new Order { OrderItems = new List <OrderItem> { new OrderItem { ProductId = 456, Quantity = 1 }, new OrderItem { ProductId = 2435, Quantity = 2 } }, CurrencyId = 1, CustomerId = 11 }; var ordersService = new OrdersService(ordersRepository.Object, productsRepository.Object, customersRepository.Object); ordersService.AddOrder(order); ordersRepository.Verify( x => x.AddOrder( It.Is <Order>( y => y.Customer == customer && y.CurrencyId == 1 && y.OrderItems.Count == 3 && y.OrderItems.First(o => o.Product == gift).Quantity == 1)), Times.Once); customersRepository.Verify(x => x.GetById(11), Times.Once); productsRepository.Verify(x => x.GetById(456), Times.Once); productsRepository.Verify(x => x.GetById(2435), Times.Once); productsRepository.Verify(x => x.GetGift(), Times.Once); }
public void GetOrderWithDetailsGetsBothOrderAndDetails() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersManagementDataSet.OrdersRow ordersRow = ds.Orders.NewOrdersRow(); ordersRow.CustomerId = "11"; ordersRow.Description = "MyDescription"; ordersRow.Approver = "MyEmployeeId"; ordersRow.Creator = "MyEmployeeId"; ordersRow.OrderName = "MyOrderName"; ordersRow.OrderStatus = (int)OrderStatusEnum.Draft; ordersRow.ShipAddress = "MyShipAddress"; ordersRow.ShipCity = "MyShipCity"; ordersRow.ShipPostalCode = "MyZip"; ordersRow.ShipRegion = "MyShipRegion"; ds.Orders.AddOrdersRow(ordersRow); OrdersManagementDataSet.OrderDetailsRow detailRow = ds.OrderDetails.NewOrderDetailsRow(); detailRow.OrdersRow = ordersRow; detailRow.ProductId = 11; detailRow.Quantity = 3; ds.OrderDetails.AddOrderDetailsRow(detailRow); ds.AcceptChanges(); FakeProductService productService = new FakeProductService(); productService.Products.Add(new Product(11, null, null, 2.99m, null)); OrdersService ordersService = new OrdersService(ds, productService); Order order = ordersService.GetOrderWithDetails(ordersRow.OrderId); Assert.IsNotNull(order); Assert.AreEqual(ordersRow.OrderId, order.OrderId); Assert.AreEqual("MyDescription", order.Description); Assert.IsNotNull(order.Details); Assert.AreEqual(1, order.Details.Count); Assert.AreEqual((short)3, order.Details[0].Quantity); Assert.AreEqual(2.99m, order.Details[0].UnitPrice); }
public void OrdersService_PayOrder_WithInitiatedOrderUsingStandardMethod_StatusChangedToPaid() { //ARRANGE var clientsRepository = new ClientsRepositoryInMemory(); var ordersRepository = new OrderRepositoryInMemory(); var storageItemsRepository = new StorageItemsRepositoryInMemory(); var mailService = new MailService(); var address = new Address { AddressLine = "RandomStreet 1", City = "RandomCity", PostalCode = "RandomPostalCode", IsDefault = true }; var email = new Email { EmailString = "*****@*****.**", IsDefault = true }; var client = new Client { Addresses = new List <Address> { address }, Balance = 100, Emails = new List <Email> { email }, FirstName = "RandomFirstName", Id = 1, LastName = "RandomLastName", MiddleName = "RandomMiddleName" }; var shopAddress = new Address { AddressLine = "RandomStreet 1", City = "RandomCity", PostalCode = "RandomPostalCode", IsDefault = true }; var shop = new Shop { CompanyNumber = "00001", Address = shopAddress, Title = "RandomTitle" }; var product = new Product { Id = 1, Price = 10, Title = "RandomTitle1", }; var storageItem = new StorageItem { Id = 1, Product = product, Quantity = 2 }; var orderLine = new OrderLine { Product = product, Quantity = 2 }; var order = new Order { Status = OrderStatus.Initiated, CreationDate = DateTime.Now, FinishDate = null, Id = 1, Initiator = client, Notes = string.Empty, Shop = shop, OrderLines = new List <OrderLine> { orderLine } }; ordersRepository.Orders = new List <Order> { order }; clientsRepository.Clients = new List <Client> { client }; storageItemsRepository.StorageItems = new List <StorageItem> { storageItem }; //ACT var ordersService = new OrdersService(ordersRepository, storageItemsRepository, clientsRepository, mailService); ordersService.PayOrder(order.Id, client.Id); //ASSERT order = ordersRepository.Orders.First(p => p.Id == order.Id); client = clientsRepository.Clients.First(p => p.Id == client.Id); Assert.That(order.Status, Is.EqualTo(OrderStatus.Paid)); Assert.That(client.Balance, Is.EqualTo(80m)); }
public void GetOrderWithDetailsReturnsNullWhenOrderNotExists() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); Order order = ordersService.GetOrderWithDetails(0); Assert.IsNull(order); }
public void SearchOrdersRetrievesOrdersByName() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow(); ordersRowA.OrderId = 1; ordersRowA.OrderName = "OrderA"; ordersRowA.Description = string.Empty; ordersRowA.Approver = "User"; ordersRowA.Creator = "User"; ordersRowA.OrderStatus = (int)OrderStatusEnum.Submitted; ds.Orders.AddOrdersRow(ordersRowA); OrdersManagementDataSet.OrdersRow ordersRowB = ds.Orders.NewOrdersRow(); ordersRowB.OrderId = 2; ordersRowB.OrderName = "OrderB"; ordersRowB.Description = string.Empty; ordersRowB.Approver = "User"; ordersRowB.Creator = "User"; ordersRowB.OrderStatus = (int)OrderStatusEnum.Submitted; ds.Orders.AddOrdersRow(ordersRowB); ds.AcceptChanges(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); ICollection<Order> foundOrders = ordersService.SearchOrders("OrderA"); Assert.AreEqual(1, foundOrders.Count); IEnumerator<Order> enumerator = foundOrders.GetEnumerator(); enumerator.Reset(); enumerator.MoveNext(); Assert.AreEqual(1, enumerator.Current.OrderId); }
public void GetSavedDraftOrdersDoesNotRetrieveOrderForApproversWhoAreNotTheCurrentLoggedInOne() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersManagementDataSet.OrdersRow ordersRow = ds.Orders.NewOrdersRow(); ordersRow.Approver = "DifferentWhoCares"; ordersRow.Creator = "DifferentUser"; ordersRow.OrderStatus = (int)OrderStatusEnum.Draft; ds.Orders.AddOrdersRow(ordersRow); ds.AcceptChanges(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); IList<Order> orders = ordersService.GetOrdersForApprover("CurrentUser"); Assert.IsNotNull(orders); Assert.AreEqual(0, orders.Count); }
public void SearchOrderThrowsArgumentExceptionWhenStartOrderIndexIsTooLarge() { OrdersManagementDataSet ds = InitOrdersManagementDataSet(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); int ordersTotalCount; ICollection<Order> foundOrders = ordersService.SearchOrders("Order", 4, int.MaxValue, out ordersTotalCount); }
public void GetSavedDraftOrdersDoesNotRetrieveOrdersWithoutDraftStatus() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersManagementDataSet.OrdersRow ordersRow = ds.Orders.NewOrdersRow(); ordersRow.Approver = "WhoCares"; ordersRow.Creator = "CurrentUser"; ordersRow.OrderStatus = (int)OrderStatusEnum.Submitted; ds.Orders.AddOrdersRow(ordersRow); ordersRow = ds.Orders.NewOrdersRow(); ordersRow.Approver = "WhoCares"; ordersRow.Creator = "CurrentUser"; ordersRow.OrderStatus = (int)OrderStatusEnum.Approved; ds.Orders.AddOrdersRow(ordersRow); ds.AcceptChanges(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); IList<Order> orders = ordersService.GetSavedDraftOrders("CurrentUser"); Assert.IsNotNull(orders); Assert.AreEqual(0, orders.Count); }
public void SubmitOrderAssignsIDWhenNotAssignded() { Order order = GetPopulatedOrder(); order.OrderId = 0; OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); ordersService.SubmitOrder(order); Assert.AreNotEqual(0, order.OrderId); }
public void GetSavedDraftOrdersRetrievesOrdersWithDraftStatusAndForCurrentUser() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersManagementDataSet.OrdersRow ordersRow = ds.Orders.NewOrdersRow(); ordersRow.Approver = "WhoCares"; ordersRow.Creator = "CurrentUser"; ordersRow.OrderName = "Test Order"; ordersRow.OrderStatus = (int)OrderStatusEnum.Draft; ds.Orders.AddOrdersRow(ordersRow); OrdersManagementDataSet.OrderDetailsRow detailRow = ds.OrderDetails.NewOrderDetailsRow(); detailRow.OrdersRow = ordersRow; detailRow.ProductId = 11; detailRow.Quantity = 3; ds.OrderDetails.AddOrderDetailsRow(detailRow); ds.AcceptChanges(); FakeProductService productService = new FakeProductService(); productService.Products.Add(new Product(11, null, null, 2.99m, null)); OrdersService ordersService = new OrdersService(ds, productService); IList<Order> orders = ordersService.GetSavedDraftOrders("CurrentUser"); Assert.IsNotNull(orders); Assert.AreEqual(1, orders.Count); Order order = orders[0]; Assert.AreEqual("Test Order", order.OrderName); Assert.IsNotNull(order); Assert.AreEqual(1, order.Details.Count); Assert.AreEqual((short)3, order.Details[0].Quantity); Assert.AreEqual(2.99m, order.Details[0].UnitPrice); }
public void ApproveOrderSetsOrdersStatusToApproved() { Order order = GetPopulatedOrder(); order.OrderStatus = 0; OrdersService ordersService = new OrdersService(new OrdersManagementDataSet(), GetPopulatedProductService()); ordersService.SubmitOrder(order); ordersService.ApproveOrder(order.OrderId); order = ordersService.GetOrderWithDetails(order.OrderId); Assert.AreEqual((int)OrderStatusEnum.Approved, order.OrderStatus); }
public void OrderStatusDifferentThanDraftOrNotAssignedThrowsOnSubmitOrder() { Order order = GetPopulatedOrder(); order.OrderStatus = (int)OrderStatusEnum.Submitted; OrdersService ordersService = new OrdersService(new OrdersManagementDataSet(), new FakeProductService()); ordersService.SubmitOrder(order); }
public void SubmitOrderStoresOrderInRepository() { Order order = GetPopulatedOrder(); order.OrderId = 0; OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); ordersService.SubmitOrder(order); OrdersManagementDataSet.OrdersRow row = ds.Orders.FindByOrderId(order.OrderId); Assert.IsNotNull(row); Assert.AreEqual(1, ds.Orders.Count); Assert.AreEqual(order.OrderName, row.OrderName); Assert.AreEqual(order.CustomerId, row.CustomerId); Assert.AreEqual(order.Description, row.Description); Assert.AreEqual(order.Approver, row.Approver); Assert.AreEqual(order.OrderStatus, row.OrderStatus); Assert.AreEqual(order.ShipAddress, row.ShipAddress); Assert.AreEqual(order.ShipCity, row.ShipCity); Assert.AreEqual(order.ShipPostalCode, row.ShipPostalCode); Assert.AreEqual(order.ShipRegion, row.ShipRegion); }
public void OrderStatusDifferentThanSubmittedThrowsOnRejectOrder() { Order order = GetPopulatedOrder(); OrdersService ordersService = new OrdersService(new OrdersManagementDataSet(), new FakeProductService()); ordersService.SaveAsDraft(order); ordersService.RejectOrder(order.OrderId); }
public JsonResult getMainData(string province) { int userToday = 0; int userMonth = 0; int userHis = 0; DateTime dt = DateTime.Now; string now = dt.ToString("yyyyMMdd"); // 用户 List <UserUserInfo> userList = UserUserInfoService.LoadEntities(u => true).ToList(); userToday = userList.Where(u => u.pubTime == now).ToList().Count; foreach (UserUserInfo item in userList) { DateTime itemDate = DateTime.ParseExact(item.pubTime, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture); //DateTime _itemDate = itemDate.ToShortDateString(); DateTime startMonth = DateTime.ParseExact(dt.AddDays(1 - dt.Day).ToString("yyyyMMdd"), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture); //本月月初 带分钟 //DateTime _startMonth = DateTime.ParseExact(startMonth.ToShortDateString(), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture); //DateTime endMonth = startMonth.AddMonths(1).AddDays(-1); //本月月末 DateTime endMonth = DateTime.ParseExact(dt.AddDays(1 - dt.Day).AddMonths(1).AddDays(-1).ToString("yyyyMMdd"), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture); //DateTime _endMonth = DateTime.ParseExact(startMonth.ToShortDateString(), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture); if (itemDate >= startMonth && itemDate <= endMonth) { userMonth++; } } userHis = userList.Count; // 订单 int orderToday = 0; int orderMonth = 0; int orderHis = 0; int waitOrder = 0; int placedOrder = 0; List <OrdersUserHouse> ouhList = OrdersUserHouseService.LoadEntities(o => true).ToList(); orderToday = ouhList.Where(o => o.pubTime == now).ToList().Count; foreach (OrdersUserHouse ouh in ouhList) { Orders order = OrdersService.LoadEntities(o => o.oid == ouh.oid).FirstOrDefault(); DateTime itemDate = DateTime.ParseExact(ouh.pubTime, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture); DateTime startMonth = dt.AddDays(1 - dt.Day); //本月月初 DateTime endMonth = startMonth.AddMonths(1).AddDays(-1); //本月月末 if (itemDate >= startMonth && itemDate <= endMonth) { orderMonth++; } if (order.state == "0") { waitOrder++; } if (order.state == "1") { placedOrder++; } } orderHis = ouhList.Count; // 房屋 int houseToday = 0; int houseMonth = 0; int houseHis = 0; List <House> houseList = HouseService.LoadEntities(h => true).ToList(); houseToday = houseList.Where(h => h.time == now).ToList().Count; foreach (House item in houseList) { DateTime itemDate = DateTime.ParseExact(item.time, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture); DateTime startMonth = dt.AddDays(1 - dt.Day); //本月月初 DateTime endMonth = startMonth.AddMonths(1).AddDays(-1); //本月月末 if (itemDate >= startMonth && itemDate <= endMonth) { houseMonth++; } } houseHis = houseList.Count; Dictionary <string, int> userChart = new Dictionary <string, int>(); Dictionary <string, int> houseChart = new Dictionary <string, int>(); DateTime last7Day = DateTime.Now.AddDays(-6); for (int i = 0; i <= 6; i++) { string date = last7Day.ToString("yyyyMMdd"); //DateTime itemDate = DateTime.ParseExact(date, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture); int count = UserUserInfoService.LoadEntities(u => u.pubTime == date).ToList().Count; int countHouse = HouseService.LoadEntities(h => h.time == date).ToList().Count; userChart.Add(date, count); houseChart.Add(date, countHouse); last7Day = last7Day.AddDays(1); } houseList = HouseService.LoadEntities(h => h.province == province).ToList(); Dictionary <string, int> houseDic = new Dictionary <string, int>(); foreach (House item in houseList) { if (!houseDic.ContainsKey(item.city)) { houseDic.Add(item.city, 1); } else { int count = houseDic[item.city] += 1; houseDic[item.city] = count; } } List <string> userChartX = userChart.Keys.ToList(); List <int> userChartY = userChart.Values.ToList(); //List<string> houseDicX = houseDic.Keys.ToList(); List <int> houseDicY = houseDic.Values.ToList(); List <HousePie> housePie = new List <HousePie>(); foreach (var item in houseDic) { housePie.Add(new HousePie { name = item.Key, value = item.Value.ToString() }); } List <string> provinces = new List <string>(); List <DataDictionary> datas = DataDictionaryService.LoadEntities(d => d.dkey == "region").ToList(); foreach (var item in datas) { if (!provinces.Contains(item.dvalue3)) { provinces.Add(item.dvalue3); } } AdminMainEntity entity = new AdminMainEntity { userToday = userToday, userMonth = userMonth, userHis = userHis, orderToday = orderToday, orderMonth = orderMonth, orderHis = orderHis, waitOrder = waitOrder, placedOrder = placedOrder, houseToday = houseToday, houseMonth = houseMonth, houseHis = houseHis, userChartX = userChartX, userChartY = userChartY, //houseDicX = houseDicX, houseDicY = houseChart.Values.ToList(), housePie = housePie, provinces = provinces }; return(Json(entity, JsonRequestBehavior.AllowGet)); }
public void RejectUnexistingOrderThrowsException() { OrdersService ordersService = new OrdersService(new OrdersManagementDataSet(), new FakeProductService()); ordersService.RejectOrder(1234); }
public HomeController(JewellisDbContext dbContext, OrdersService orders, ClientCurrencyService clientCurrency) { _dbContext = dbContext; _orders = orders; _clientCurrency = clientCurrency; }
public void SaveAsDraftCanStoreOrderWithoutDetailsInRepository() { Order order = new Order(); order.OrderId = 0; order.Approver = "11"; order.Creator = "11"; order.Details = null; OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); ordersService.SaveAsDraft(order); OrdersManagementDataSet.OrdersRow row = ds.Orders.FindByOrderId(order.OrderId); Assert.IsNotNull(row); Assert.AreEqual(1, ds.Orders.Count); }
public OrdersController(OrdersService ordersService, IUsersService usersService) { this.ordersService = ordersService; this.usersService = usersService; }
public void SaveAsDraftSetsOrdersStatusToDraft() { Order order = GetPopulatedOrder(); order.OrderStatus = 0; OrdersService ordersService = new OrdersService(new OrdersManagementDataSet(), new FakeProductService()); ordersService.SaveAsDraft(order); Assert.AreEqual((int) OrderStatusEnum.Draft, order.OrderStatus); }
public async Task AllOrdersByUserIdTest() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options; var dbContext = new ApplicationDbContext(options); dbContext.Products.Add(new Product { Id = 1, Quantity = 2, Name = "Product1", Price = 4, ImageUrl = "Image", Ratings = new List <Rating> { new Rating { Id = 1, ProductId = 1, Grade = Grade.Average, }, new Rating { Id = 2, ProductId = 1, Grade = Grade.VeryGood, }, }, }); dbContext.Products.Add(new Product { Id = 2, Quantity = 2, Name = "Product2", Price = 4, ImageUrl = "Image", Ratings = new List <Rating> { new Rating { Id = 3, ProductId = 2, Grade = Grade.VeryBad, }, new Rating { Id = 4, ProductId = 2, Grade = Grade.VeryGood, }, }, }); dbContext.Products.Add(new Product { Id = 3, Quantity = 2, Name = "Product3", Price = 4, ImageUrl = "Image", Ratings = new List <Rating> { new Rating { Id = 5, ProductId = 3, Grade = Grade.VeryBad, }, new Rating { Id = 6, ProductId = 3, Grade = Grade.VeryGood, }, }, }); dbContext.ApplicationUsers.Add(new ApplicationUser { Id = "TestId", }); dbContext.ApplicationUsers.Add(new ApplicationUser { Id = "TestId2", }); dbContext.Orders.Add(new Order { Id = Guid.NewGuid().ToString(), ProductId = 1, UserId = "TestId", }); dbContext.Orders.Add(new Order { Id = Guid.NewGuid().ToString(), ProductId = 1, UserId = "TestId", }); dbContext.Orders.Add(new Order { Id = Guid.NewGuid().ToString(), ProductId = 2, UserId = "TestId2", }); await dbContext.SaveChangesAsync(); var repository = new EfDeletableEntityRepository <Order>(dbContext); var service = new OrdersService(repository); var orders = service.AllOrdersByUserId("TestId", 10, 0); Assert.Equal(2, orders.Count()); Assert.Equal(4, orders.Where(a => a.ProductId == 1).First().AverageRating); }
public void SaveAsDraftWithExistingOrderUpdatesDetailsInRepository() { Order order = GetPopulatedOrder(); order.OrderId = 0; order.Details.Add(new OrderDetail(0, 10, 1, 1.99m)); OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersService ordersService = new OrdersService(ds, GetPopulatedProductService()); ordersService.SaveAsDraft(order); int orderID = order.OrderId; order = GetPopulatedOrder(); order.OrderId = orderID; order.Details.Add(new OrderDetail(0, 20, 3, 2.50m)); int detailsCount = order.Details.Count; ordersService.SaveAsDraft(order); Assert.AreEqual(detailsCount, ds.OrderDetails.Count); OrdersManagementDataSet.OrderDetailsRow detailRow = ds.OrderDetails.FindByOrderIdProductId(order.OrderId, 20); Assert.IsNotNull(detailRow); Assert.AreEqual((short)3, detailRow.Quantity); OrdersManagementDataSet.OrderDetailsRow deletedDetailRow = ds.OrderDetails.FindByOrderIdProductId(order.OrderId, 10); Assert.IsNull(deletedDetailRow); }
/// <summary> /// /// </summary> /// <param name="e"></param> /// <returns></returns> private static async Task TryMessage(MessageEventArgs e) { var chat = await ClientService.GetByChatId(e.Message.Chat.Id); var company = CompanyService.GetByChatId(e.Message.Chat.Id); var order = await OrdersService.GetByPositionChatId(e.Message.Chat.Id, 1); var tokenOrService = -1; if (e.Message.Text != null) { tokenOrService = e.Message.Text.IndexOf("_"); } //Stream read = File.OpenRead("dry.mp4"); if (e.Message.Location != null && chat != null && order != null) { if (order.Longitude == null && order.Longitude == null) { SendPayment(e); } else { InliniButtonForServices(e); } } else if (tokenOrService != -1) { AddTokenOrService(e); } else if (company != null && e.Message.Video != null || company != null && e.Message.Photo != null) { SendPhotoOrVideo(e); } else if (e.Message.Text == "/start" && chat == null) { var firstmessage = "Biz sizga kim deb murojaat qilsak bo’ladi?\n Как мы можем обратиться к вам?"; //Bot.SendVideoAsync(e.Message.Chat.Id, video: read, caption: "Dry car washing"); ClientService.AddOrUpdate(new Client() { ChatId = e.Message.Chat.Id }); Bot.SendTextMessageAsync(e.Message.Chat.Id, firstmessage); } else if (e.Message.Text == "/todayPeople" && company != null) { var count = await ClientService.GetCount(); Bot.SendTextMessageAsync(e.Message.Chat.Id, count != 0 ? "Bugungi qo'shilgan odamlar - " + count : "Bugun odam qo'shilmagan"); } else if (e.Message.Text != "/start" && chat == null) { Bot.SendTextMessageAsync(e.Message.Chat.Id, "Iltimos /start ni bosing"); } else if (e.Message.Text == "/info") { Bot.SendTextMessageAsync(e.Message.Chat.Id, "Call center \nTelefon: \n +998 95 001 07 99 \n \n Телефон: \n +998 95 001 07 99"); } else if (e.Message.Text == "/start" && chat.Name == null) { Bot.SendTextMessageAsync(e.Message.Chat.Id, "Iltimos telefon ism ni kiriting!"); } else if (e.Message.Text == "/start" && chat.Phone == null) { Bot.SendTextMessageAsync(e.Message.Chat.Id, "Iltimos telefon nomer ni kiriting!"); } else if (e.Message.Contact != null && chat.Phone == null) { var random = new Random().Next(10000, 99999); ClientService.AddOrUpdate(new Client() { Id = chat.Id, Name = chat.Name, Phone = e.Message.Contact.PhoneNumber, ChatId = e.Message.Chat.Id, IsActive = false, GenerateCode = random }); SendSMSForClient(e); Bot.SendTextMessageAsync(e.Message.Chat.Id, "Iltimos Kodni kiriting! \n \n Пожалуйста, введите код", replyMarkup: new ReplyKeyboardRemove()); } else if (e.Message.Text == "/changenumber") { ClientService.AddOrUpdate(new Client() { Id = chat.Id, Name = chat.Name, ChatId = e.Message.Chat.Id }); var secondmessage = "Ro'yxatdan o'tish uchun telefon raqamingizni kiriting \nRaqamni 901234567 shaklida yuboring. \n \n Введите свой номер телефона для регистрации \nОтправьте номер в форме 901234567."; var RequestReplyKeyboard = new ReplyKeyboardMarkup(new[]// bu yerda location qabul qilish ishlatilvotdi { new KeyboardButton("📱 Contact") { RequestContact = true } }); RequestReplyKeyboard.ResizeKeyboard = true; RequestReplyKeyboard.OneTimeKeyboard = true; Bot.SendTextMessageAsync(e.Message.Chat.Id, secondmessage, ParseMode.Default, false, false, 0, RequestReplyKeyboard); } else if (chat.Name == null) { ClientService.AddOrUpdate(new Client() { Id = chat.Id, Name = e.Message.Text, ChatId = e.Message.Chat.Id }); var secondmessage = "Ro'yxatdan o'tish uchun telefon raqamingizni kiriting \nRaqamni 901234567 shaklida yuboring. \n \n Введите свой номер телефона для регистрации \nОтправьте номер в форме 901234567."; var RequestReplyKeyboard = new ReplyKeyboardMarkup(new[]// bu yerda location qabul qilish ishlatilvotdi { new KeyboardButton("📱 Contact") { RequestContact = true } }); RequestReplyKeyboard.ResizeKeyboard = true; RequestReplyKeyboard.OneTimeKeyboard = true; Bot.SendTextMessageAsync(e.Message.Chat.Id, secondmessage, ParseMode.Default, false, false, 0, RequestReplyKeyboard); } else if (chat.Phone == null) { try { if (e.Message.Text.Length == 9) { var random = new Random().Next(10000, 99999); var phone = Convert.ToInt32(e.Message.Text); ClientService.AddOrUpdate(new Client() { Id = chat.Id, Name = chat.Name, Phone = e.Message.Text, ChatId = e.Message.Chat.Id, IsActive = false, GenerateCode = random }); Bot.SendTextMessageAsync(e.Message.Chat.Id, "Iltimos kodni kiriting! \nПожалуйста, введите код!"); SendSMSForClient(e); } else { var secondmessage = "Telefon raqam noto'g'ri kiritildi \n Raqamni 901234567 shaklida yuboring!"; Bot.SendTextMessageAsync(e.Message.From.Id, secondmessage); } } catch { var secondmessage = "Telefon raqam noto'g'ri kiritildi \n Raqamni 901234567 shaklida yuboring!"; Bot.SendTextMessageAsync(e.Message.From.Id, secondmessage); } } else if (chat.IsActive == false && chat.GenerateCode.ToString() == e.Message.Text) { ClientService.AddOrUpdate(new Client() { Id = chat.Id, Name = chat.Name, Phone = chat.Phone, GenerateCode = chat.GenerateCode, ChatId = e.Message.Chat.Id, IsActive = true, DateCreate = DateTime.Now.Date }); InliniButtonForServices(e); } else if (chat.IsActive == true) { InliniButtonForServices(e); } else if (chat.IsActive == false && chat.GenerateCode.ToString() != e.Message.Text) { Bot.SendTextMessageAsync(e.Message.Chat.Id, "Iltimos kodni to'g'ri kiriting!"); } else if (e.Message != null && chat != null) { Bot.SendTextMessageAsync(e.Message.Chat.Id, chat.Name == null ? "Iltimos ismni kiritin" : "Iltimos nomerni kiritin"); } }
public void SaveAsDraftWithExistingOrderUpdatesRepository() { Order order = GetPopulatedOrder(); order.OrderId = 0; OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersService ordersService = new OrdersService(ds, GetPopulatedProductService()); ordersService.SaveAsDraft(order); int orderID = order.OrderId; order = GetPopulatedOrder(); order.OrderId = orderID; order.OrderName = "MyNewName"; ordersService.SaveAsDraft(order); OrdersManagementDataSet.OrdersRow row = ds.Orders.FindByOrderId(orderID); Assert.IsNotNull(row); Assert.AreEqual("MyNewName", row.OrderName); Assert.AreEqual(1, ds.Orders.Count); }
public OrdersController(OrdersService ordersService) { _ordersService = ordersService; }
public void SearchOrderNotExceedMaximumOrdersCount() { OrdersManagementDataSet ds = InitOrdersManagementDataSet(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); int ordersTotalCount; ICollection<Order> foundOrders = ordersService.SearchOrders("Order", 0, 2, out ordersTotalCount); Assert.AreEqual(3, ordersTotalCount); Assert.AreEqual(2, foundOrders.Count); List<Order> searchableList = new List<Order>(foundOrders); Assert.IsTrue(searchableList.Exists(delegate(Order order) { return order.OrderId == 1; })); Assert.IsTrue(searchableList.Exists(delegate(Order order) { return order.OrderId == 2; })); Assert.IsFalse(searchableList.Exists(delegate(Order order) { return order.OrderId == 3; })); }
public void GetAllUserOrdersShouldReturnAllOrdersBeforeGivenUnloadingDate() { var searchModel = new SearchInputModel { SenderName = null, ReceiverName = null, LoadingDate = null, UnloadingDate = DateTime.UtcNow.AddDays(5), }; //Create first Order var shipment = new Shipment() { FromCity = new City { Name = "Plovdiv" }, ToCity = new City { Name = "Sofia" }, Length = 2, Width = 3, Height = 1.2, Weight = 333, CountOfPallets = 2, IsExpressDelivery = true, IsFragile = false, Price = 114.60M }; var input = new AddressInputModel { ShipmentId = shipment.Id, LoadingName = "Fenix", UnloadingName = "Faaaaaaaaan", LoadingDate = DateTime.UtcNow, UnloadingDate = DateTime.UtcNow.AddDays(1), LoadingPhone = "0877-223-225", UnloadingPhone = "0877-774-225", Description = "descr", LoadingStreet = "бул. Христо Ботев", UnloadingStreet = "Александровска", LoadingNumber = "12", UnloadingNumber = "23A", LoadingEmail = "*****@*****.**", UnloadingEmail = "*****@*****.**", }; var user = new ApplicationUser { UserName = "******" }; var optionsBuilder = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()); var db = new ApplicationDbContext(optionsBuilder.Options); db.Shipments.Add(shipment); db.Users.Add(user); db.SaveChanges(); var ordersService = new OrdersService(db); ordersService.CreateOrder(input, user.Id); //Create second Order var shipment2 = new Shipment() { FromCity = new City { Name = "Plovdiv" }, ToCity = new City { Name = "Sofia" }, Length = 2, Width = 3, Height = 1.2, Weight = 333, CountOfPallets = 2, IsExpressDelivery = true, IsFragile = false, Price = 114.60M }; var input2 = new AddressInputModel { ShipmentId = shipment2.Id, LoadingName = "Fenix2", UnloadingName = "Fazan", LoadingDate = DateTime.UtcNow, UnloadingDate = DateTime.UtcNow.AddDays(2), LoadingPhone = "0877-223-225", UnloadingPhone = "0877-774-225", Description = "descr", LoadingStreet = "бул. Христо Ботев", UnloadingStreet = "Александровска", LoadingNumber = "12", UnloadingNumber = "23A", LoadingEmail = "*****@*****.**", UnloadingEmail = "*****@*****.**", }; db.Shipments.Add(shipment2); db.SaveChanges(); ordersService.CreateOrder(input2, user.Id); //Create third Order var shipment3 = new Shipment() { FromCity = new City { Name = "Plovdiv" }, ToCity = new City { Name = "Sofia" }, Length = 2, Width = 3, Height = 1.2, Weight = 333, CountOfPallets = 2, IsExpressDelivery = true, IsFragile = false, Price = 114.60M }; var input3 = new AddressInputModel { ShipmentId = shipment3.Id, LoadingName = "Company", UnloadingName = "Fazan", LoadingDate = DateTime.UtcNow, UnloadingDate = DateTime.UtcNow.AddDays(10), LoadingPhone = "0877-223-225", UnloadingPhone = "0877-774-225", Description = "descr", LoadingStreet = "бул. Христо Ботев", UnloadingStreet = "Александровска", LoadingNumber = "12", UnloadingNumber = "23A", LoadingEmail = "*****@*****.**", UnloadingEmail = "*****@*****.**", }; db.Shipments.Add(shipment3); db.SaveChanges(); ordersService.CreateOrder(input3, user.Id); var searchService = new SearchService(db); var collection = searchService.GetAllUserOrders(user.Id, searchModel); var result = collection.Count(); Assert.Equal(2, result); }
public void SearchOrderRetrievesOrderFromStartOrderIndex() { OrdersManagementDataSet ds = InitOrdersManagementDataSet(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); int ordersTotalCount; ICollection<Order> foundOrders = ordersService.SearchOrders("Order", 2, int.MaxValue, out ordersTotalCount); Assert.AreEqual(3, ordersTotalCount); Assert.AreEqual(1, foundOrders.Count); List<Order> searchableList = new List<Order>(foundOrders); Assert.IsFalse(searchableList.Exists(delegate(Order order) { return order.OrderId == 1; })); Assert.IsFalse(searchableList.Exists(delegate(Order order) { return order.OrderId == 2; })); Assert.IsTrue(searchableList.Exists(delegate(Order order) { return order.OrderId == 3; })); }
public UsersController() { this.users = new UsersService(); this.products = new ProductsService(); this.orders = new OrdersService(); }
public void SearchOrdersDoesALikeMatch() { OrdersManagementDataSet ds = InitOrdersManagementDataSet(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); ICollection<Order> foundOrders = ordersService.SearchOrders("Description"); List<Order> searchableList = new List<Order>(foundOrders); Assert.AreEqual(2, foundOrders.Count); Assert.IsTrue(searchableList.Exists(delegate(Order order) { return order.OrderId == 1; })); Assert.IsTrue(searchableList.Exists(delegate(Order order) { return order.OrderId == 2; })); Assert.IsFalse(searchableList.Exists(delegate(Order order) { return order.OrderId == 3; })); }
public OrdersController(OrdersService ss) { _ss = ss; }
public OrdersController(OrdersService orderService, ILogger <OrdersController> logger) { _orderService = orderService; _logger = logger; }