コード例 #1
0
        private async Task <IActionResult> UpdText()
        {
            ProductFunction = new ProductFunction();

            string product_name = OriginalMessage.Substring(EnterTextForceReply.Length);

            Product = ProductFunction.GetProduct(product_name);

            string units = UnitsList();

            if (Product != null && ReplyToMessageText.Length <= 100)
            {
                Product = ProductFunction.UpdateText(Product.Id, ReplyToMessageText);
                ProductFunction.Dispose();
                await SendTextMessageAndForceReply("Еденица измерения:" + units, EnterUnitForceReply + Product.Name);

                return(OkResult);
            }

            if (Product != null && ReplyToMessageText.Length > 100)
            {
                ProductFunction.Dispose();
                return(await SendTextMessageAndForceReply("Ошибка! Максимум 100 символов", EnterTextForceReply + Product.Name));
            }

            else
            {
                ProductFunction.Dispose();
                return(await SendTextMessageAndForceReply("Введите краткое описание вашего товара. Максмимум 100 символов", EnterTextForceReply + Product.Name));
            }
        }
コード例 #2
0
        /// <summary>
        /// Добавить доп фото
        /// </summary>
        /// <returns></returns>
        private async Task <IActionResult> InsertAdditionallyPhoto()
        {
            AttachmentTelegram TgAttach = null;

            int ProductId = ProductGet(ProductAdditionallyPhotoReply);

            ProductFunction = new ProductFunction();

            var ProductPhoto = ProductFunction.InsertAdditionallPhoto(ProductId, await base.GetFileAsync(base.PhotoId), base.Caption);

            if (ProductPhoto != null && base.PhotoId != null)
            {
                TgAttach = AttachmentTelegramFunction.AddAttachmentTelegram(ProductPhoto.AttachmentFsId, BotInfo.Id, base.PhotoId);
            }

            var product = ProductFunction.GetProduct(ProductId);

            ProductFunction.Dispose();

            if (ProductPhoto != null && ProductPhoto.AttachmentFsId > 0 && TgAttach != null && TgAttach.Id > 0)
            {
                await SendMessage(new BotMessage { TextMessage = "Добавлено" });
            }

            return(await SendProductFunc(product));
        }
コード例 #3
0
        /// <summary>
        /// Обновить стоимость
        /// </summary>
        /// <returns></returns>
        private async Task <IActionResult> UpdateProductPrice()
        {
            double NewPrice = 0.0;

            try
            {
                int ProductId = ProductGet(ProductEditPriceRelpy);

                ProductFunction = new ProductFunction();

                NewPrice = Convert.ToDouble(base.ReplyToMessageText);

                var product = ProductFunction.UpdatePrice(ProductId, NewPrice, Convert.ToInt32(BotInfo.Configuration.CurrencyId));


                ProductFunction.Dispose();

                return(await SendProductFunc(product));
            }

            catch
            {
                return(await ErrorMessage(ProductEditPriceRelpy));
            }
        }
コード例 #4
0
        private async Task <IActionResult> UpdPrice()
        {
            ProductFunction = new ProductFunction();

            string product_name = OriginalMessage.Substring(EnterPriceForceReply.Length);

            var product = ProductFunction.GetProduct(product_name);

            try
            {
                double price = Convert.ToDouble(ReplyToMessageText);

                if (price > 0 && product != null)
                {
                    product = ProductFunction.UpdatePrice(product.Id, price, Convert.ToInt32(BotInfo.Configuration.CurrencyId));
                    ProductFunction.Dispose();
                    return(await SendForceReplyMessage(StockValueForceReply + product.Name));
                }

                else
                {
                    return(await SendTextMessageAndForceReply(product.Name + "Ошибка! Значение должно быть больше 0", EnterPriceForceReply + product.Name));
                }
            }

            catch
            {
                return(await SendTextMessageAndForceReply(product_name + "Ошибка! Неверный формат данных", EnterPriceForceReply + product_name));
            }
        }
コード例 #5
0
        private async Task <IActionResult> UpdStock()
        {
            ProductFunction = new ProductFunction();

            string product_name = OriginalMessage.Substring(StockValueForceReply.Length);

            var product = ProductFunction.GetProduct(product_name);

            try
            {
                int balance = Convert.ToInt32(ReplyToMessageText);

                if (balance >= 0 && product != null)
                {
                    product = ProductFunction.UpdateStock(product.Id, balance, "Добавление нового товара через диалог с ботом");
                    ProductFunction.Dispose();
                    return(await SendForceReplyMessage(UploadImageForceReply + product.Name));
                }

                else
                {
                    return(await SendTextMessageAndForceReply(product.Name + " /adminproduct" + product.Id + " Ошибка! Значение должно быть больше 0", StockValueForceReply + product.Name));
                }
            }

            catch
            {
                return(await SendTextMessageAndForceReply(product_name + "Ошибка! Неверный формат данных", StockValueForceReply + product_name));
            }
        }
コード例 #6
0
        public async Task <IActionResult> Save(Product SaveProduct, IFormFile image = null, int balance = 0)
        {
            bool NameIsProhibited = false;

            BotInfo = Bot.GeneralFunction.GetBotInfo();

            ProductFunc = new ProductFunction();


            if (SaveProduct != null)
            {
                NameIsProhibited = ProductFunc.NameIsProhibited(SaveProduct.Name);
            }

            if (NameIsProhibited)
            {
                return(Json("Данное имя запрещено"));
            }

            if (SaveProduct != null && SaveProduct.CurrentPrice.Value <= 0)
            {
                return(Json("Стоимость должна быть больше 0"));
            }

            if (SaveProduct != null && SaveProduct.CategoryId < 1)
            {
                return(Json("Выбертие категорию"));
            }

            if (SaveProduct != null && SaveProduct.Text != null && SaveProduct.Text.Length > 100)
            {
                return(Json("Ошибка. Максимальная длина описания 100 символов"));
            }

            if (!NameIsProhibited && SaveProduct != null && SaveProduct.Id > 0) // обновление уже сущ. товара
            {
                await UpdateProduct(SaveProduct, image);

                ProductFunc.Dispose();
                return(new RedirectResult("Editor\\" + SaveProduct.Id));
            }

            ///добавление нового товара
            if (!NameIsProhibited && SaveProduct != null && SaveProduct.Name != null &&
                SaveProduct.Id == 0 && SaveProduct.CurrentPrice.Value > 0 && SaveProduct.CategoryId > 0)
            {
                int id = await CreateProduct(SaveProduct, image, balance);

                return(new RedirectResult("Editor\\" + id));
            }


            else
            {
                return(Json("Ошибка"));
            }
        }
コード例 #7
0
        private async Task <IActionResult> UpdUnit()
        {
            string product_name = OriginalMessage.Substring(EnterUnitForceReply.Length);

            string unit_name = ReplyToMessageText.Trim();

            var UnitList = UnitsList();

            ProductFunction = new ProductFunction();

            var product = ProductFunction.GetProduct(product_name);

            var Unit = UnitsFunction.GetUnits(unit_name);

            ProductFunction = new ProductFunction();

            if (Unit != null && product != null)
            {
                product = ProductFunction.UpdateUnit(product.Id, Unit.Id);
                ProductFunction.Dispose();
            }

            if (Unit == null && product != null) // пользваотель указа ед. измерения но ее не удалось найти. Выбираем первую из существующих
            {
                var list = UnitsFunction.UnitsList();
                await SendMessage(new BotMessage { TextMessage = "Не удалось найти еденицу измерения. Выбрано:" + list.FirstOrDefault().Name });

                product = ProductFunction.UpdateUnit(product.Id, list.FirstOrDefault().Id);
                ProductFunction.Dispose();
            }

            if (product != null && product.UnitId > 0)
            {
                return(await SendTextMessageAndForceReply(product.Name + " /adminproduct" + product.Id, EnterPriceForceReply + product.Name));
            }


            else
            {
                return(await SendTextMessageAndForceReply(product.Name + " /adminproduct" + product.Id +
                                                          " Еденицы измерения:" + UnitList, EnterUnitForceReply + product.Name));
            }
        }
コード例 #8
0
        /// <summary>
        /// Сохрнаяем новоем значение Ед. измерения для товара
        /// </summary>
        /// <returns></returns>
        private async Task <IActionResult> UpdateUnit()
        {
            int ProductId = Argumetns[0];
            int UnitId    = Argumetns[1];

            ProductFunction = new ProductFunction();

            var product = ProductFunction.UpdateUnit(ProductId, UnitId);

            ProductFunction.Dispose();

            return(await SendProductFunc(product, base.MessageId));
        }
コード例 #9
0
        private async Task <IActionResult> UpdCategory()
        {
            string product_name = OriginalMessage.Substring(EnterCategoryForceReply.Length);

            string category_name = ReplyToMessageText;

            var category = CategoryFunction.GetCategory(category_name);

            var category_list = CategoryList();

            ProductFunction = new ProductFunction();

            Product = ProductFunction.GetProduct(product_name);


            if (category == null)
            {
                category = CategoryFunction.InsertCategory(category_name);
            }

            if (category != null && Product != null)
            {
                Product = ProductFunction.GetProduct(product_name);

                ProductFunction.UpdateCategory(Product.Id, category.Id);

                ProductFunction.Dispose();

                return(await SendTextMessageAndForceReply("Введите краткое описание вашего товара. Максмимум 100 символов",
                                                          EnterTextForceReply + Product.Name));
            }

            else
            {
                ProductFunction.Dispose();
                return(await SendTextMessageAndForceReply("Введите название новой категории или выберите уже существующую."
                                                          + "Список категорий:" + category_list, EnterCategoryForceReply + product_name));
            }
        }
コード例 #10
0
        /// <summary>
        /// Обновить имя
        /// </summary>
        /// <returns></returns>
        private async Task <IActionResult> UpdateProductName()
        {
            ProductFunction = new ProductFunction();

            string NewName = base.ReplyToMessageText;

            int ProductId = ProductGet(ProductEditNameRelpy);

            var Product = ProductFunction.UpdateName(ProductId, NewName);

            ProductFunction.Dispose();

            return(await SendProductFunc(Product));
        }
コード例 #11
0
        /// <summary>
        /// Обновить категорию
        /// </summary>
        /// <returns></returns>
        private async Task <IActionResult> UpdateProductCategory()
        {
            ProductFunction = new ProductFunction();

            int ProductId = ProductGet(ProductEditCategoryReply);

            string CatName = base.ReplyToMessageText;

            var category = CategoryFunction.GetCategory(CatName);

            if (category != null)
            {
                var product = ProductFunction.UpdateCategory(ProductId, category.Id);
                ProductFunction.Dispose();
                return(await SendProductFunc(product));
            }
            else
            {
                ProductFunction.Dispose();
                await SendMessage(new BotMessage { TextMessage = "Категория не найдена!" });

                return(await SendCategoryList());
            }
        }
コード例 #12
0
        public async Task <IActionResult> AddPhoto(int ProductId, IList <IFormFile> image)
        {
            ProductFunc = new ProductFunction();

            foreach (var img in image)
            {
                var photo = ProductFunc.InsertAdditionallPhoto(ProductId, img.OpenReadStream(), img.Name);

                await this.SendPhotoAndSaveFileId(photo.AttachmentFs);
            }

            ProductFunc.Dispose();

            return(new RedirectResult("Photos\\" + ProductId));
        }
コード例 #13
0
        /// <summary>
        /// Обновить главную фотографию товара
        /// </summary>
        /// <returns></returns>
        private async Task <IActionResult> UpdateMainProductPhoto()
        {
            int fs_id = await base.InsertToAttachmentFs(base.PhotoId);

            int Id = ProductGet(ProductEditPhotoReply);

            ProductFunction = new ProductFunction();

            var product = ProductFunction.UpdateMainPhoto(Id, fs_id);

            AttachmentTelegramFunction.AddAttachmentTelegram(fs_id, BotInfo.Id, base.PhotoId);

            ProductFunction.Dispose();

            return(await SendProductFunc(product));
        }
コード例 #14
0
        public IActionResult Editor(int id)
        {
            ProductFunc = new ProductFunction();

            if (id > 0)
            {
                var product = ProductFunc.GetProduct(id);

                if (product.MainPhotoNavigation != null) // вытаскиваем главную фотографию и готовим ее к отображению на странице
                {
                    string imageBase64Data = Convert.ToBase64String(product.MainPhotoNavigation.Fs);
                    string imageDataURL    = string.Format("data:image/png;base64,{0}", imageBase64Data);
                    ViewBag.ImageData = imageDataURL;
                }

                ViewBag.Category = new SelectList(CategoryFunction.GetListCategory(), "Id", "Name", product.CategoryId);

                ViewBag.Currency = CurrencyFunction.CurrencyList();

                ViewBag.Unit = new SelectList(UnitsFunction.UnitsList(), "Id", "Name", product.UnitId);

                ProductFunc.Dispose();

                if (product != null)
                {
                    return(View(product));
                }

                else
                {
                    return(NoContent());
                }
            }



            else
            {
                return(null);
            }
        }
コード例 #15
0
        /// <summary>
        /// Удалить доп.фото у товара
        /// </summary>
        /// <returns></returns>
        private async Task <IActionResult> RemoveAdditionalPhoto()
        {
            ProductId = Argumetns[0];

            int Attachid = Argumetns[1];

            ProductFunction = new ProductFunction();

            if (ProductFunction.RemoveAdditionalPhoto(ProductId, Attachid) > 0)
            {
                await AnswerCallback("Фотография удалена", true);
            }

            else
            {
                await AnswerCallback("Фотографии не существует", true);
            }

            ProductFunction.Dispose();

            return(OkResult);
        }
コード例 #16
0
        /// <summary>
        /// Обновить ссылку на заметку
        /// </summary>
        /// <returns></returns>
        private async Task <IActionResult> UpdateProductNoteUrl()
        {
            if (WebUrl != null && WebUrl.Length > 0)
            {
                ProductFunction = new ProductFunction();

                string Url = base.ReplyToMessageText;

                int ProductId = ProductGet(ProductEditUrlReply);

                var Product = ProductFunction.UpdateUrl(ProductId, Url);

                ProductFunction.Dispose();

                return(await SendProductFunc(Product));
            }

            else
            {
                return(await ErrorMessage(ProductEditUrlReply, "Ошибка. Введите Url"));
            }
        }
コード例 #17
0
        /// <summary>
        /// Обновить описание
        /// </summary>
        /// <returns></returns>
        private async Task <IActionResult> UpdateProductText()
        {
            if (base.ReplyToMessageText.Length <= 100)
            {
                ProductFunction = new ProductFunction();

                string Text = base.ReplyToMessageText;

                int ProductId = ProductGet(ProductEditNameRelpy);

                var Product = ProductFunction.UpdateText(ProductId, Text);

                ProductFunction.Dispose();

                return(await SendProductFunc(Product));
            }

            else
            {
                await SendMessage(new BotMessage { TextMessage = "Ошибка! Максимум 100 символов" });

                return(OkResult);
            }
        }
コード例 #18
0
        private async Task <IActionResult> UpdPhoto()
        {
            ProductFunction = new ProductFunction();

            string product_name = OriginalMessage.Substring(UploadImageForceReply.Length);

            Product = ProductFunction.GetProduct(product_name);

            int ProductId = -1;

            if (base.PhotoId != null && Product != null)
            {
                int FsId = await InsertToAttachmentFs(base.PhotoId);

                Product = ProductFunction.UpdateMainPhoto(Product.Id, FsId);
                AttachmentTelegramFunction.AddAttachmentTelegram(FsId, base.BotInfo.Id, base.PhotoId);
                ProductFunction.Dispose();
                ProductId = Product.Id;
            }

            if (Product != null) // удалось загрузить файл
            {
                ProductFuncMsg = new ProductFuncMessage(Product);
                await SendMessage(ProductFuncMsg.BuildMsg());
            }

            else
            {
                await SendMessage(new BotMessage { TextMessage = "Не удалось загрузить файл!" });

                ProductFuncMsg = new ProductFuncMessage(ProductId);
                await SendMessage(ProductFuncMsg.BuildMsg());
            }

            return(OkResult);
        }
コード例 #19
0
        /// <summary>
        /// Обновить остатки
        /// </summary>
        /// <returns></returns>
        private async Task <IActionResult> UpdateProductStock()
        {
            int Value = 0;

            int ProductId = ProductGet(ProductEditStockReply);

            ProductFunction = new ProductFunction();

            try
            {
                Value = Convert.ToInt32(base.ReplyToMessageText);

                var product = ProductFunction.UpdateStock(ProductId, Value, "Значение изменено через панель администратора");

                ProductFunction.Dispose();

                return(await SendProductFunc(product));
            }

            catch
            {
                return(await ErrorMessage(ProductEditStockReply, "Неверный формат данных!"));
            }
        }