Esempio n. 1
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,MealName,MealTypeId,Price,DiscountId,ImageName")] MealMenu mealMenu)
        {
            if (id != mealMenu.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(mealMenu);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!MealMenuExists(mealMenu.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["DiscountId"] = new SelectList(_context.Discounts, "Id", "Description", mealMenu.DiscountId);
            ViewData["MealTypeId"] = new SelectList(_context.MealTypes, "Id", "Name", mealMenu.MealTypeId);
            return(View(mealMenu));
        }
Esempio n. 2
0
        private Attachment CreateAttachmentAsync(IDialogContext context, MealMenu menu)
        {
            var imageBytes = MenuFactory.MakeImage(context.Activity.Conversation.Id, menu);
            var image64    = "data:image/jpeg;base64," + Convert.ToBase64String(imageBytes);

            return(new Attachment
            {
                ContentUrl = image64,
                ContentType = "image/jpeg",
                Name = Util.GetStringOfDate(menu.Date.Date)
            });
        }
Esempio n. 3
0
        public async Task <IActionResult> Create([Bind("Id,MealName,MealTypeId,Price,DiscountId,ImageName")] MealMenu mealMenu)
        {
            if (ModelState.IsValid)
            {
                _context.Add(mealMenu);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["DiscountId"] = new SelectList(_context.Discounts, "Id", "Description", mealMenu.DiscountId);
            ViewData["MealTypeId"] = new SelectList(_context.MealTypes, "Id", "Name", mealMenu.MealTypeId);
            return(View(mealMenu));
        }
Esempio n. 4
0
        public JsonResult SaveMenu()
        {
            var data        = Request.GetArrayList("data");
            var mealMenuDal = flexibleContext.GetService <MealMenuDal>();

            for (int i = 0, l = data.Count; i < l; i++)
            {
                Hashtable o = (Hashtable)data[i];

                String id = o["id"] != null ? o["id"].ToString() : "";
                //根据记录状态,进行不同的增加、删除、修改操作
                String  state      = o["_state"] != null ? o["_state"].ToString() : "";
                String  saleName   = o["SaleName"].ToString();
                decimal salePrice  = Convert.ToDecimal(o["SalePrice"]);
                long    categoryID = Convert.ToInt64(o["CategoryID"].ToString());
                String  mealMenuID = o["MealMenuID"] != null ? o["MealMenuID"].ToString() : "";
                decimal sortNo     = Convert.ToDecimal(o["SortNo"]);

                if (state == "added" || mealMenuID == "")           //新增:id为空,或_state为added
                {
                    MealMenu model = new MealMenu();
                    model.CategoryID = categoryID;
                    model.CreateBy   = flexibleContext.CurrentUser.UserName;
                    model.CreateTime = DateTime.Now;
                    model.SaleName   = saleName;
                    model.SalePrice  = salePrice;
                    model.SortNo     = sortNo;
                    mealMenuDal.InsertReturnLastId(model, x => x.MealMenuID);
                }
                else if (state == "removed" || state == "deleted")
                {
                    mealMenuDal.Delete(mealMenuID);
                }
                else if (state == "modified" || state == "") //更新:_state为空或modified
                {
                    var model = mealMenuDal.GetModel(mealMenuID);
                    model.SaleName   = saleName;
                    model.SalePrice  = salePrice;
                    model.SortNo     = sortNo;
                    model.UpdateBy   = flexibleContext.CurrentUser.UserName;
                    model.UpdateTime = DateTime.Now;
                    mealMenuDal.Update(model, x => x.MealMenuID);
                }

                //if (i == 2) throw new Exception("aaa");
            }

            var result = new { };

            return(Json(result));
        }
Esempio n. 5
0
        public MealMenuView Update(MealMenuView view)
        {
            var      dtNow = DateTime.Now;
            MealMenu model;
            MealMenu duplicatedMealMenu = null;

            if (view.Id > 0)
            {
                model = Repository.GetById <MealMenu>(view.Id);
            }
            else
            {
                duplicatedMealMenu = (from mealMenu in Repository.Query <MealMenu>()
                                      where
                                      mealMenu.MealType == view.MealType.Id &&
                                      mealMenu.ValidDate == view.ValidDate.Date &&
                                      mealMenu.Menu.Id == view.Menu.Id &&
                                      mealMenu.RecordStatus == (long)RecordStatuses.Active
                                      select mealMenu).FirstOrDefault();
                if (duplicatedMealMenu == null)
                {
                    model = new MealMenu
                    {
                        Menu               = Repository.GetById <Menu>(view.Menu.Id),
                        ModifiedAt         = dtNow,
                        ModifiedReason     = view.ModifiedReason,
                        ModifiedBy         = view.ModifiedBy,
                        ModifiedByFullName = view.ModifiedByFullName,
                        RecordStatus       = (long)RecordStatuses.Active
                    };
                }
                else
                {
                    model = duplicatedMealMenu;
                }
            }
            if (duplicatedMealMenu == null)
            {
                model.MealType  = (int)view.MealType.Id;
                model.ValidDate = view.ValidDate.Date;
                if (model.Id == 0)
                {
                    model.CreatedAt         = dtNow;
                    model.CreatedBy         = view.ModifiedBy;
                    model.CreatedByFullName = view.ModifiedByFullName;
                }

                Repository.Update(model);
            }
            return(model.ToView <MealMenuView>());
        }
Esempio n. 6
0
        private List <Attachment> GetTodaysSchoolMealMenuAsync(IDialogContext context, List <MealMenu> menus)
        {
            var      todaysDate = DateTime.Now;
            MealMenu todayMenu  = null;

            if (menus.Exists(x => x.Date.Date == todaysDate.Date))
            {
                todayMenu = menus.Find(x => x.Date.Date == todaysDate.Date);
            }

            return(todayMenu != null?CreateAttachmentsAsync(context, new List <MealMenu> {
                todayMenu
            }) : null);
        }
Esempio n. 7
0
        public static byte[] MakeImage(string userId, MealMenu menu)
        {
            List <string> menuStrings = Regex.Split(MenuToString(menu), "\r\n|\r|\n").ToList();

            var width        = 0;
            var defaultWidth = 500;

            foreach (var str in menuStrings)
            {
                if (str.Length > width)
                {
                    width = str.Length;
                }
            }
            width += 40;
            if (width < defaultWidth)
            {
                width = defaultWidth;
            }

            var height = menuStrings.Count * 24;

            Bitmap bitmap = new Bitmap(width, height); //load the image file

            using (Graphics graphics = Graphics.FromImage(bitmap))
            {
                graphics.FillRectangle(Brushes.GhostWhite, 0, 0, width, height);
                using (Font writeFont = new Font("Malgun Gothic", 12))
                {
                    float yPoint = 10f;
                    foreach (var str in menuStrings)
                    {
                        graphics.DrawString(str, writeFont, Brushes.Black, new PointF(15f, yPoint));
                        yPoint += 20f;
                    }
                }
            }

            var imageArray = (byte[])new ImageConverter().ConvertTo(bitmap, typeof(byte[]));

            return(imageArray);
        }
Esempio n. 8
0
        private static string MenuToString(MealMenu menu)
        {
            var resultMenu = new StringBuilder();

            if (menu.IsExistMenu)
            {
                resultMenu.AppendLine(Util.GetStringOfDate(menu.Date.Date));
                resultMenu.AppendLine("=============");
                resultMenu.AppendLine();

                if (menu.Breakfast != null)
                {
                    resultMenu.AppendLine("[아침]");
                    foreach (var breakfastMenu in menu.Breakfast)
                    {
                        resultMenu.AppendLine(breakfastMenu);
                    }
                }
                if (menu.Lunch != null)
                {
                    resultMenu.AppendLine();
                    resultMenu.AppendLine("[점심]");
                    foreach (var lunchMenu in menu.Lunch)
                    {
                        resultMenu.AppendLine(lunchMenu);
                    }
                }
                if (menu.Dinner != null)
                {
                    resultMenu.AppendLine();
                    resultMenu.AppendLine("[저녁]");
                    foreach (var dinnerMenu in menu.Dinner)
                    {
                        resultMenu.AppendLine(dinnerMenu);
                    }
                }
            }
            return(resultMenu.ToString());
        }
Esempio n. 9
0
 public static void SetTo(this MealMenuListItemView view, MealMenu model)
 {
     Mapper.Map(view, model);
 }
Esempio n. 10
0
 public static T ToView <T>(this MealMenu model)
 {
     return(Mapper.Map <T>(model));
 }