Exemple #1
0
        protected bool SavePhoto(Message message)
        {
            bool result       = false;
            var  currentState = new RefusalWorkflowStatus();

            try
            {
                Task <File> file    = Api.GetFileAsync(message.Photo.LastOrDefault()?.FileId);
                string      barcode = BarCodeReader.GetBarCode(file.Result.FileStream);

                if (barcode != string.Empty)
                {
                    currentState = GetCurrentState(message.Chat.Id);

                    //create or update product
                    Product product = ProductRepository.AddEdit(new Product()
                    {
                        ProductBarcode = barcode
                    });

                    Api.SendTextMessageAsync(message.Chat.Id, String.Format(TelegramBotMessages.BarCodeText, barcode));

                    //update state
                    currentState.ProductId    = product.Id;
                    currentState.ProcessStage = RefusalWorkflowStatusType.SavedPhoto;
                    UserProcessStatusRepository.AddEdit(currentState);

                    result = true;
                }
            }
            catch (Exception ex)
            {
                result = false;

                ErrorRepository.AddEdit(new Error()
                {
                    ChatId                  = message.Chat.Id,
                    ErrorCode               = ex.HResult,
                    ErrorMessage            = ex.Message,
                    StackTrace              = ex.StackTrace,
                    RefusalWorkflowStatusId = currentState.ProcessStage
                });
            }

            return(result);
        }