protected RefusalWorkflowStatus UpdateCurrentState(long chatId, RefusalWorkflowStatusType state, int userId = 0) { var currentState = new RefusalWorkflowStatus(); try { currentState = GetCurrentState(chatId); currentState.ChatId = chatId; currentState.ProcessStage = state; if (userId > 0) { currentState.UserId = userId; } UserProcessStatusRepository.AddEdit(currentState); } catch (Exception ex) { ErrorRepository.AddEdit(new Error() { ChatId = chatId, ErrorCode = ex.HResult, ErrorMessage = ex.Message, StackTrace = ex.StackTrace, RefusalWorkflowStatusId = currentState.ProcessStage }); } return(currentState); }
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); }
protected RefusalWorkflowStatus GetCurrentState(long chatId) { var currentState = new RefusalWorkflowStatus(); try { currentState = UserProcessStatusRepository.Get((int)chatId); } catch (Exception ex) { ErrorRepository.AddEdit(new Error() { ChatId = chatId, ErrorCode = ex.HResult, ErrorMessage = ex.Message, StackTrace = ex.StackTrace, RefusalWorkflowStatusId = currentState.ProcessStage }); } return(currentState); }