public ResponseMessage ProfileData() { try { var userId = User.Identity.GetUserId(); var user = _db.Users.Find(userId); LogThis.BaseLog(Request, LogLevel.Info, Actions.ProfileDataRequested, new Dictionary <LogProperties, object> { { LogProperties.Id, userId }, { LogProperties.IdType, typeof(ApplicationUser) }, { LogProperties.Message, ErrorMessages.Successful } }); return(Tools.ResponseMessage.OkWithResult(new ProfileViewModel(user))); } catch (Exception e) { LogThis.BaseLog(Request, LogLevel.Error, Actions.ProfileDataRequested, new Dictionary <LogProperties, object> { { LogProperties.Error, e } }); return(Tools.ResponseMessage.InternalError); } }
internal static String GetLastMySQLInsertedId(String tabla, String Campo) { String valueFromResponse = ""; String queryLastInserted = "select max(" + Campo + ") from " + tabla; string ConnectionString = ConfigurationSettings.AppSettings["ConnectToMySQL"]; MySqlConnection connection; MySqlDataAdapter adapter; DataTable queryTable = new DataTable(); try { connection = new MySqlConnection(ConnectionString); adapter = new MySqlDataAdapter(queryLastInserted, connection); adapter.Fill(queryTable); DataRow dtr = queryTable.Rows[0]; valueFromResponse = dtr["max(" + Campo + ")"].ToString(); connection.Close(); } catch (Exception e) { LogThis.LogThisValue(e); } return(valueFromResponse); }
internal static void InicializarPorFecha(DateTime dtIni, DateTime dtFin) { String dtInic = dtIni.ToString("yyyyMMdd"); String dtFinc = dtFin.ToString("yyyyMMdd"); DataTable iterateValues = SQLDataManager.getTypeData("NULL", dtInic, dtFinc, "NULL"); List <EntityInitRawMaterial> addAllLinesToList = new List <EntityInitRawMaterial>(); iterateValuesRows = iterateValues.Rows.Count; try { foreach (DataRow r in iterateValues.Rows) { EntityInitRawMaterial eirm = new EntityInitRawMaterial(); eirm.Orig_Ubic_Alm = r["ORIG_UBIC_ALM"].ToString(); eirm.NumMaterial = r["NumMaterial"].ToString(); eirm.Orig_Cant = r["ORIG_CANT"].ToString(); eirm.Material = r["Material"].ToString(); eirm.Conf_Usuario = r["CONF_USUARIO"].ToString(); eirm.Descripcion = r["DESCRIPCION"].ToString(); eirm.Num_Pallet = r["NUM_PALLET"].ToString(); addAllLinesToList.Add(eirm); } } catch (Exception e) { LogThis.LogThisValue(e); } foreach (EntityInitRawMaterial q in addAllLinesToList) { wsInitRawMaterial(q); } }
public async Task <ResponseMessage> BugReport(BugReportViewModel bug) { try { LogThis.BaseLog(Request, LogLevel.Info, Actions.BugReported, new Dictionary <LogProperties, object> { { LogProperties.AdditionalData, bug.Bug }, { LogProperties.Message, ErrorMessages.Successful } }); _db.BugReports.Add(new BugReport { DateTime = DateTime.Now, UserId = User.Identity.GetUserId(), Text = bug.Bug }); await _db.SaveChangesAsync(); return(Tools.ResponseMessage.Ok); } catch (Exception e) { LogThis.BaseLog(Request, LogLevel.Error, Actions.BugReported, new Dictionary <LogProperties, object> { { LogProperties.Error, e } }); return(Tools.ResponseMessage.InternalError); } }
public async Task <ResponseMessage> VerifyPhoneCode(UserVerifyPhoneCodeViewModel model) { var result = await UserManager.ChangePhoneNumberAsync(User.Identity.GetUserId(), model.PhoneNumber, model.Code); if (result.Succeeded) { LogThis.BaseLog(Request, LogLevel.Warn, Actions.VerifyPhoneCodeRequested, new Dictionary <LogProperties, object> { { LogProperties.Id, model.Code }, { LogProperties.Message, ErrorMessages.Successful }, { LogProperties.AdditionalData, model.PhoneNumber } }); return(Tools.ResponseMessage.Ok); } // If we got this far, something failed, redisplay form LogThis.BaseLog(Request, LogLevel.Warn, Actions.VerifyPhoneCodeRequested, new Dictionary <LogProperties, object> { { LogProperties.Id, model.Code }, { LogProperties.Message, ErrorMessages.VerificationCodeInvalid }, { LogProperties.AdditionalData, model.PhoneNumber } }); return(new ResponseMessage(Tools.ResponseMessage.ResponseCode.AuthenticationFailed, ErrorMessages.VerificationCodeInvalid)); }
private void tim_Tick(object sender, EventArgs e) { Thread tipf = new Thread(InitService); tipf.Start(); LogThis.LogThisValue("##### Tim_Tick - Init Raw Material Web Service ####"); }
private void tim_Tick_SolicitudMateriales(object sender, EventArgs e) { Thread tipf = new Thread(InitServiceMatRequest); tipf.Start(); LogThis.LogThisValue("##### Tim_Tick - Material Request - Web Service ####"); }
private void tim_Tick_Camx(object sender, EventArgs e) { Thread tipf = new Thread(InitServiceCAMX); tipf.Start(); LogThis.LogThisValue("##### Tim_Tick - CAMX Reboot ####", "CAMX"); }
public async Task <ResponseMessage> UserBoxQuestions(IdRequestViewModel model) {//id userpackagebox try { var userPackageBox = await db.UserPackageBoxes.FindAsync(model.Id); if (userPackageBox == null) { LogThis.BaseLog(Request, LogLevel.Warn, Actions.UserPackageBoxQuestionsRequested, new Dictionary <LogProperties, object> { { LogProperties.Id, model.Id }, { LogProperties.Message, ErrorMessages.UserPackageBoxNotFound } }); return(new ResponseMessage(Tools.ResponseMessage.ResponseCode.NotFound, ErrorMessages.UserPackageBoxNotFound)); } switch (userPackageBox.State) { case BoxState.NotOwned: LogThis.BaseLog(Request, LogLevel.Info, Actions.UserPackageBoxQuestionsRequested, new Dictionary <LogProperties, object> { { LogProperties.Id, model.Id }, { LogProperties.Message, ErrorMessages.UserNotOwnedBox }, }); return(new ResponseMessage(Tools.ResponseMessage.ResponseCode.UserStatusFaild, ErrorMessages.UserNotOwnedBox)); case BoxState.Learning: LogThis.BaseLog(Request, LogLevel.Info, Actions.UserPackageBoxQuestionsRequested, new Dictionary <LogProperties, object> { { LogProperties.Id, model.Id }, { LogProperties.Message, ErrorMessages.UserPackageBoxNotLearned } }); return(new ResponseMessage(Tools.ResponseMessage.ResponseCode.UserStatusFaild, ErrorMessages.UserPackageBoxNotLearned)); default: LogThis.BaseLog(Request, LogLevel.Info, Actions.UserPackageBoxQuestionsRequested, new Dictionary <LogProperties, object> { { LogProperties.Id, model.Id }, { LogProperties.Message, ErrorMessages.Successful }, { LogProperties.Count, userPackageBox.Box.Articles.Count } }); return(Tools.ResponseMessage.OkWithResult(userPackageBox.Box.Articles.SelectMany(x => x.Questions).Select(x => new QuestionMinimalViewModel(x, User.Identity.GetUserId())))); } } catch (Exception e) { LogThis.BaseLog(Request, LogLevel.Error, Actions.UserPackageBoxQuestionsRequested, new Dictionary <LogProperties, object> { { LogProperties.Error, e } }); return(Tools.ResponseMessage.InternalError); } }
public async Task <ResponseMessage> LeaderBoard() { try { const int topN = 10; var user = _db.Users.Find(User.Identity.GetUserId()); var userOrder = await _db.Users.CountAsync(x => x.Score > user.Score); ScoreBoardItemViewModel userItem = null; if (userOrder >= topN) //user is not in topN { userItem = new ScoreBoardItemViewModel { Score = user.Score, Name = user.UserName, Order = userOrder }; } var y = await _db.Users.OrderByDescending(x => x.Score).Take(topN).ToListAsync().ConfigureAwait(false); var items = y.Select((x, i) => new ScoreBoardItemViewModel { Score = x.Score, Name = x.UserName, Order = i + 1 }).ToList(); var challenge = await _db.Challenges.OrderByDescending(x => x.Finish).FirstOrDefaultAsync(); var result = new ScoreBoardViewModel { Items = items, UserItem = userItem, Challenge = challenge }; LogThis.BaseLog(Request, LogLevel.Info, Actions.LeaderBoardRequested, new Dictionary <LogProperties, object> { { LogProperties.AdditionalData, $"رتبه کاربر {userOrder} میباشد" }, { LogProperties.Id, challenge?.Id }, { LogProperties.IdType, challenge?.GetType() }, { LogProperties.Count, items.Count }, { LogProperties.Message, ErrorMessages.Successful } }); return(Tools.ResponseMessage.OkWithResult(result)); } catch (Exception e) { LogThis.BaseLog(Request, LogLevel.Error, Actions.LeaderBoardRequested, new Dictionary <LogProperties, object> { { LogProperties.Error, e } }); return(Tools.ResponseMessage.InternalError); } }
private void BTNInicializarPorFechaInicializar_Click(object sender, EventArgs e) { try { richTextBox3.Text = "\n Por Fecha Inicializado: " + DateTime.Now; btnInitMayor.BackColor = Color.LimeGreen; manipulateLabel(lblEstadoServicio, Color.LightYellow, "Procesando INIT WS", btnInitMayor); manipulateGroupBoxes(true, GBIniciaServicio, GBInicializaPorFecha); Thread tipf = new Thread(InitPorFecha_Thread); tipf.Start(); } catch (Exception exception) { LogThis.LogThisValue(exception); manipulateGroupBoxes(false, GBIniciaServicio, GBInicializaPorFecha); manipulateLabel(lblEstadoServicio, Color.LightSkyBlue, "Error en el proceso", btnInitMayor); } }
internal static DataTable GetLPNFromInterface() { String connectionString = "ConnectToInterfaceDESA"; String queryString = "SELECT * FROM [Traza_material].[dbo].[XXE_WMS_COGISCAN_PEDIDO_LPNS] WHERE STATUS = 'NEW'"; DataTable queryTable = new DataTable(); try { queryTable = Conectivity.ConnectItAndBringResults(queryString, connectionString); } catch (Exception e) { queryTable = null; LogThis.LogThisValue(e); } return(queryTable); }
static public DataSet showData() { DataSet db = new DataSet(); String connectionString = "ConectCYGNUSDBAP3"; String queryString = "_AC_SP_EXCEL_PRODUCCION_Push"; DataTable queryTable = new DataTable(); try { queryTable = Conectivity.ConnectItAndExecuteSPAndBringResults(queryString, connectionString); } catch (Exception e) { db = null; LogThis.LogThisValue(e); } return(db); }
/*****************************************************************************************************/ /******************************* SYGNUS DATABASE ******************************************************/ static public DataTable getTypeData(String idMaterial, String fechaIni, String fechaFin, String ubicacion) { String queryString = "EXEC [dbo].[_AC_SP_EXCEL_PRODUCCION_Push] @IdUbicacion = " + ubicacion + ", @FechaDesde = " + fechaIni + ", @FechaHasta = " + fechaFin + ", @IdMaterial = " + idMaterial + ""; String connectionString = "ConectCYGNUSDBAP3"; DataTable queryTable = new DataTable(); try { queryTable = Conectivity.ConnectItAndBringResults(queryString, connectionString); } catch (Exception e) { queryTable = null; LogThis.LogThisValue(e); } return(queryTable); }
private void BTNIniciarServicioPedirMateriales(object sender, EventArgs e) { MaterialRequestAutomation.StartSendingLowLevelToPizzarra(); try { TimerToChangeMatReqState.Enabled = false; checkBox4.Enabled = false; checkedListBox4.Enabled = false; richTextBox3.Text = "\n Servicio Inicializado: " + DateTime.Now; btnPedidoMaterialesMayor.BackColor = Color.LimeGreen; //this.timerThreadController.Enabled = true; BTNIniciarServicioSolicMateriales.Enabled = false; manipulateLabel(labelEstadoServicioPedidoMateriales, Color.LightYellow, "Procesando Pedido de Materiales", btnPedidoMaterialesMayor); } catch (Exception exception) { LogThis.LogThisValue(exception); manipulateLabel(labelEstadoServicioPedidoMateriales, Color.LightSkyBlue, "Error en el proceso", btnPedidoMaterialesMayor); } }
/*****************************************************************************************************/ /******************************* PIZARRA DATABASE ****************************************************/ internal static String IAServerInsertionLog(Entity.EntityInitRawMaterial q, string p) { if (p != null) { String partNumber = SQLDataManager.selectValuesFromMateriales(q.NumMaterial); String lastInserted = ""; String connectionStringFromAppConfig = "ConnectToMySQL"; String insertStringToMateriales = "INSERT INTO materiales(NumMaterial,Material,Orig_Ubic_Alm,Orig_Cant,Conf_Fecha,Conf_Hora,Conf_Usuario,Descripcion,Cantidad,Num_Pallet,Num_Ord_Transp,TimeStamp) values ('" + q.NumMaterial + "','" + partNumber + "','" + q.Orig_Ubic_Alm + "','" + q.Orig_Cant + "','" + q.Conf_Fecha + "','" + q.Conf_Hora + "','" + q.Conf_Usuario + "','" + q.Descripcion + "','" + q.Cantidad + "','" + q.Num_Pallet + "','" + q.Num_Ord_Transp + "',NOW())"; DataTable queryTable = new DataTable(); try { Conectivity.ConnectItAndExecuteMYSQL(insertStringToMateriales, connectionStringFromAppConfig); lastInserted = GetLastMySQLInsertedId("materiales", "idMateriales"); if (lastInserted == null || lastInserted == "") { lastInserted = "1"; } String insertStringToDetMateriales = "INSERT INTO wsmensajeresponse(idMateriales,detalleMensaje) VALUES ('" + lastInserted + "','" + p + "')"; Conectivity.ConnectItAndExecuteMYSQL(insertStringToDetMateriales, connectionStringFromAppConfig); } catch (Exception e) { LogThis.LogThisValue(e); } return(p); } else { return(null); } }
private void BTNIniciarServicio_Click(object sender, EventArgs e) { try { timerToChangeState.Enabled = false; checkBox1.Enabled = false; checkedListBox1.Enabled = false; richTextBox3.Text = "\n Servicio Inicializado: " + DateTime.Now; btnInitMayor.BackColor = Color.LimeGreen; manipulateLabel(lblEstadoServicio, Color.LightYellow, "Procesando INIT WS", btnInitMayor); manipulateGroupBoxes(true, GBInicializaPorFecha, GBInicializaPorFecha); BTNIniciarServicio.Enabled = false; this.timerThreadController.Enabled = true; } catch (Exception exception) { LogThis.LogThisValue(exception); manipulateGroupBoxes(false, GBIniciaServicio, GBInicializaPorFecha); manipulateLabel(lblEstadoServicio, Color.LightSkyBlue, "Error en el proceso", btnInitMayor); } }
internal static string selectValuesFromMateriales(string p) { String connectionString = "ConectCYGNUSDBAP3"; String queryString = "Select * from Materiales where NumMaterial='" + p + "'"; DataTable queryTable = new DataTable(); String value = ""; try { queryTable = Conectivity.ConnectItAndBringResults(queryString, connectionString); DataRow dtr = queryTable.Rows[0]; value = dtr["DatosPrivados2"].ToString(); } catch (Exception e) { queryTable = null; LogThis.LogThisValue(e); } return(value); }
internal static String InitRawMaterial(Entity.EntityInitRawMaterial q) { String resultReturn = ""; try { DataTable queryTable = new DataTable(); String queryString = "select * from materiales where num_pallet='" + q.Num_Pallet + "'"; String connectionStringFromAppConfig = "ConnectToMySQL"; queryTable = Conectivity.ConnectItAndExecuteMYSQL(queryString, connectionStringFromAppConfig); if (queryTable.Rows.Count == 0) { RPCServicesClient RPC = new RPCServices_CogiscanManager.RPCServicesClient(); String partNumber = SQLDataManager.selectValuesFromMateriales(q.NumMaterial); executeCommandRequest paramInitRawMat = new executeCommandRequest("initializeRawMaterial", @" <Parameters> <Parameter name=""itemId"">" + q.Num_Pallet + @"</Parameter> <Parameter name=""partNumber"">" + partNumber + @"</Parameter> <Parameter name=""msLevel"">1</Parameter>k <Parameter name=""containerType"">REEL</Parameter> <Parameter name=""supplierId"">Default</Parameter> <Parameter name=""quantity"">" + q.Orig_Cant + @"</Parameter> <Parameter name=""tagId""></Parameter> <Parameter name=""tagModel""></Parameter> </Parameters>"); executeCommandResponse res = RPC.executeCommand(paramInitRawMat); LogThis.LogThisValue("Material Inicializado: " + q.Num_Pallet); takeTheThreadFlag(Form1.logRTBInitRaw, true, q.Num_Pallet); resultReturn = CleanInput(res.result); } else { return(null); } } catch (Exception e) { LogThis.LogThisValue(e); return(e.Message); } return(resultReturn); }
private void BTNIniciarServicioCAMX_Click(object sender, EventArgs e) { try { this.Timer4CAMX.Enabled = true; //checkBox2.Enabled = false; //checkedListBox2.Enabled = false; //richTextBox3.Text = "\n Servicio CAMX Inicializado: " + DateTime.Now; //btnCAMXMayor.BackColor = Color.LimeGreen; //manipulateLabel(labelEstadoServicioCAMX, Color.LightYellow, "Procesando CAMX Reboot", btnCAMXMayor); //manipulateGroupBoxes(true, GBCAMXEvents, GBCAMXEvents); //BTNIniciarServicioCAMX.Enabled = false; //timerToChangeCamxBtn.Enabled = false; //this.Timer4CAMX.Enabled = true; } catch (Exception exception) { LogThis.LogThisValue(exception); manipulateGroupBoxes(false, GBCAMXService, GBCAMXEvents); manipulateLabel(labelEstadoServicioCAMX, Color.LightSkyBlue, "Error en el proceso", btnCAMXMayor); } }
public async Task <ResponseMessage> SetAvatar(IdRequestViewModel avatarId) { try { var avatar = await _db.AvatarImages.FindAsync(avatarId.Id); if (avatar == null) { LogThis.BaseLog(Request, LogLevel.Info, Actions.SetAvatarRequested, new Dictionary <LogProperties, object> { { LogProperties.Id, avatarId.Id }, { LogProperties.IdType, typeof(AvatarImage) }, { LogProperties.Message, ErrorMessages.AvatarImageNotFound } }); return(new ResponseMessage(Tools.ResponseMessage.ResponseCode.NotFound, ErrorMessages.AvatarImageNotFound)); } var user = _db.Users.Find(User.Identity.GetUserId()); user.AvatarImage = avatar; await _db.SaveChangesAsync(); LogThis.BaseLog(Request, LogLevel.Info, Actions.SetAvatarRequested, new Dictionary <LogProperties, object> { { LogProperties.Id, avatarId.Id }, { LogProperties.IdType, typeof(AvatarImage) }, { LogProperties.Message, ErrorMessages.Successful } }); return(Tools.ResponseMessage.Ok); } catch (Exception e) { LogThis.BaseLog(Request, LogLevel.Error, Actions.SetAvatarRequested, new Dictionary <LogProperties, object> { { LogProperties.Error, e } }); return(Tools.ResponseMessage.InternalError); } }
public async Task <ResponseMessage> Packages(IdRequestViewModel model) { string ip = StaticTools.GetIp(Request); string userId = User.Identity.GetUserId(); try { var category = await db.Catergories.FindAsync(model.Id); if (category == null) { LogThis.BaseLog(Request, LogLevel.Warn, Actions.PackagesOfCategoryRequested, new Dictionary <LogProperties, object> { { LogProperties.Id, model.Id }, { LogProperties.Message, ErrorMessages.RequestedCategoryNotFound } }); return(new ResponseMessage(Tools.ResponseMessage.ResponseCode.NotFound, ErrorMessages.RequestedCategoryNotFound)); } var result = category.Packages.Select(x => new PackageMinimalViewModel(x, userId)).ToList(); LogThis.BaseLog(Request, LogLevel.Info, Actions.PackagesOfCategoryRequested, new Dictionary <LogProperties, object> { { LogProperties.Id, model.Id }, { LogProperties.Count, result.Count }, { LogProperties.Message, ErrorMessages.Successful } }); return(Tools.ResponseMessage.OkWithResult(result)); } catch (Exception e) { LogThis.BaseLog(Request, LogLevel.Error, Actions.CategoriesRequested, new Dictionary <LogProperties, object> { { LogProperties.Error, e } }); return(Tools.ResponseMessage.InternalError); } }
internal static DataTable ExecuteSP_HeartBeat() { String connectionString = "ConnectToMySQLAutoRequest"; String hostName = Dns.GetHostName(); String queryLastInserted = "INSERT INTO `amr_heartbeat`(`beat`, `host`) VALUES ('1','" + hostName + "')"; string ConnectionString = ConfigurationSettings.AppSettings[connectionString]; MySqlConnection connection; MySqlDataAdapter adapter; DataTable queryTable = new DataTable(); try { connection = new MySqlConnection(ConnectionString); adapter = new MySqlDataAdapter(queryLastInserted, connection); adapter.Fill(queryTable); connection.Close(); } catch (Exception e) { LogThis.LogThisValue(e); } return(null); }
public async Task <ResponseMessage> Categories() { //string ip = StaticTools.GetIp(Request); try { var result = await db.Catergories.ToListAsync(); LogThis.BaseLog(Request, LogLevel.Info, Actions.CategoriesRequested, new Dictionary <LogProperties, object> { { LogProperties.Count, result.Count }, { LogProperties.Message, ErrorMessages.Successful } }); return(Tools.ResponseMessage.OkWithResult(result)); } catch (Exception e) { LogThis.BaseLog(Request, LogLevel.Error, Actions.CategoriesRequested, new Dictionary <LogProperties, object> { { LogProperties.Error, e } }); return(Tools.ResponseMessage.InternalError); } }
public async Task <ResponseMessage> UserPackageBoxes(IdRequestViewModel model) { var z = UserManager.GenerateUserToken("sss", User.Identity.GetUserId()); try { var package = await db.Packages.FindAsync(model.Id); if (package == null) { LogThis.BaseLog(Request, LogLevel.Warn, Actions.PackageBoxesRequested, new Dictionary <LogProperties, object> { { LogProperties.Id, model.Id }, { LogProperties.Message, ErrorMessages.PackageNotFound } }); return(new ResponseMessage(Tools.ResponseMessage.ResponseCode.NotFound, ErrorMessages.PackageNotFound)); } var userId = User.Identity.GetUserId(); var packageBoxes = package.Boxes.Select(x => new UserBoxMinimalViewModel(x, userId)).ToList(); LogThis.BaseLog(Request, LogLevel.Info, Actions.PackageBoxesRequested, new Dictionary <LogProperties, object> { { LogProperties.Id, model.Id }, { LogProperties.Message, ErrorMessages.Successful }, { LogProperties.Count, packageBoxes.Count } }); return(Tools.ResponseMessage.OkWithResult(packageBoxes)); } catch (Exception e) { LogThis.BaseLog(Request, LogLevel.Error, Actions.CategoriesRequested, new Dictionary <LogProperties, object> { { LogProperties.Error, e } }); return(Tools.ResponseMessage.InternalError); } }
public async Task <ResponseMessage> ProfileImagesList() { try { var avatarImages = await _db.AvatarImages.ToListAsync(); LogThis.BaseLog(Request, LogLevel.Info, Actions.ProfileImageListRequested, new Dictionary <LogProperties, object> { { LogProperties.Count, avatarImages.Count }, { LogProperties.Message, ErrorMessages.Successful } }); return(Tools.ResponseMessage.OkWithResult(avatarImages)); } catch (Exception e) { LogThis.BaseLog(Request, LogLevel.Error, Actions.ProfileImageListRequested, new Dictionary <LogProperties, object> { { LogProperties.Error, e } }); return(Tools.ResponseMessage.InternalError); } }
public async Task <ResponseMessage> MyPackages() { try { var userId = User.Identity.GetUserId(); var user = await UserManager.FindByIdAsync(userId); var userPackages = user.UserPackages; LogThis.BaseLog(Request, LogLevel.Info, Actions.PackagesOfUserRequested, new Dictionary <LogProperties, object> { { LogProperties.Count, userPackages?.Count }, { LogProperties.Message, ErrorMessages.Successful } }); return(Tools.ResponseMessage.OkWithResult(userPackages?.Select(x => new UserPackageMinimalViewModel(x, userId)))); } catch (Exception e) { LogThis.BaseLog(Request, LogLevel.Error, Actions.CategoriesRequested, new Dictionary <LogProperties, object> { { LogProperties.Error, e } }); return(Tools.ResponseMessage.InternalError); } }
public async Task <ResponseMessage> AnsweringArticle(AnsweringViewModel model) { try { var userId = User.Identity.GetUserId(); var answer = await db.Answers.FindAsync(model.AnswerId); if (answer == null) { LogThis.BaseLog(Request, LogLevel.Warn, Actions.AnsweredArticle, new Dictionary <LogProperties, object> { { LogProperties.Id, model.AnswerId }, { LogProperties.IdType, typeof(Answer) }, { LogProperties.Message, ErrorMessages.AnswerNotFound }, }); return(new ResponseMessage(Tools.ResponseMessage.ResponseCode.NotFound, ErrorMessages.AnswerNotFound)); } var userPackageBox = answer.Question.Article.Box.UserPackageBoxes.FirstOrDefault(x => x.UserPackage.UserId == userId); if (userPackageBox == null) { LogThis.BaseLog(Request, LogLevel.Warn, Actions.AnsweredArticle, new Dictionary <LogProperties, object> { { LogProperties.Id, model.AnswerId }, { LogProperties.IdType, typeof(Answer) }, { LogProperties.Message, ErrorMessages.UserPackageBoxNotFound }, }); return(new ResponseMessage(Tools.ResponseMessage.ResponseCode.NotFound, ErrorMessages.UserPackageBoxNotFound)); } if (userPackageBox.State != BoxState.Examing) { LogThis.BaseLog(Request, LogLevel.Warn, Actions.AnsweredArticle, new Dictionary <LogProperties, object> { { LogProperties.Id, model.AnswerId }, { LogProperties.IdType, typeof(Answer) }, { LogProperties.Message, ErrorMessages.UserPackageBoxStateIncorrect }, { LogProperties.From, userPackageBox.State.ToString() }, { LogProperties.To, BoxState.Examing.ToString() } }); return(new ResponseMessage(Tools.ResponseMessage.ResponseCode.UserStatusFaild, ErrorMessages.UserPackageBoxStateIncorrect)); } UserAnswer userAnswer = answer.Question.UserAnswers.FirstOrDefault(x => x.UserId == userId); if (userAnswer != null) { LogThis.BaseLog(Request, LogLevel.Warn, Actions.AnsweredArticle, new Dictionary <LogProperties, object> { { LogProperties.Id, model.AnswerId }, { LogProperties.IdType, typeof(Answer) }, { LogProperties.Message, ErrorMessages.UserAnswerdBefore }, }); return(new ResponseMessage(Tools.ResponseMessage.ResponseCode.Expire, ErrorMessages.UserAnswerdBefore)); } answer.Question.UserAnswers.Add(new UserAnswer() { AnswerId = answer.Id, DateTime = DateTime.Now, UserId = userId }); var user = db.Users.Find(userId); var reason = answer.IsCorrect ? ScoreReason.CorrectAnswer : ScoreReason.WrongAnswer; user.AddScore(reason); await db.SaveChangesAsync(); if (userPackageBox.Box.Articles.SelectMany(x => x.Questions).Select(x => new QuestionMinimalViewModel(x, User.Identity.GetUserId())).All(x => x.UserAnswerId != null)) { LogThis.BaseLog(Request, LogLevel.Info, Actions.AnsweredArticle, new Dictionary <LogProperties, object> { { LogProperties.Id, model.AnswerId }, { LogProperties.IdType, typeof(Answer) }, { LogProperties.Message, ErrorMessages.UserBoxStateChanged }, { LogProperties.From, BoxState.Examing.ToString() }, { LogProperties.To, BoxState.Finished.ToString() } }); LogThis.BaseLog(Request, LogLevel.Info, Actions.AnsweredArticle, new Dictionary <LogProperties, object> { { LogProperties.Id, model.AnswerId }, { LogProperties.IdType, typeof(Answer) }, { LogProperties.Message, ErrorMessages.UserBoxStateValueChange }, { LogProperties.From, userPackageBox.StateValue }, { LogProperties.To, 0 } }); userPackageBox.StateValue = 0; userPackageBox.State = BoxState.Finished; await db.SaveChangesAsync(); } LogThis.BaseLog(Request, LogLevel.Info, Actions.AnsweredArticle, new Dictionary <LogProperties, object> { { LogProperties.Id, model.AnswerId }, { LogProperties.IdType, typeof(Answer) }, { LogProperties.Message, answer.IsCorrect ? ErrorMessages.CorrectAnswer : ErrorMessages.WrongAnswer }, }); return(Tools.ResponseMessage.OkWithMessage(answer.IsCorrect ? ErrorMessages.CorrectAnswer : ErrorMessages.WrongAnswer)); } catch (Exception e) { LogThis.BaseLog(Request, LogLevel.Error, Actions.UserPackageBoxQuestionsRequested, new Dictionary <LogProperties, object> { { LogProperties.Error, e } }); return(Tools.ResponseMessage.InternalError); } }
public async Task <ResponseMessage> LearnedArticle(LearningViewModel model) { try { var userId = User.Identity.GetUserId(); var userPackageBox = await db.UserPackageBoxes.FirstOrDefaultAsync(x => x.BoxId == model.BoxId && x.UserPackage.UserId == userId); //var userPackageBox = await db.UserPackageBoxes.FindAsync(model.UserBoxId); if (userPackageBox == null) { LogThis.BaseLog(Request, LogLevel.Warn, Actions.LearnedArticle, new Dictionary <LogProperties, object> { { LogProperties.Id, model.BoxId }, { LogProperties.IdType, typeof(Box) }, { LogProperties.Message, ErrorMessages.UserPackageBoxNotFound }, { LogProperties.AdditionalData, model.Order } }); return(new ResponseMessage(Tools.ResponseMessage.ResponseCode.NotFound, ErrorMessages.UserPackageBoxNotFound)); } if (userPackageBox.State == BoxState.NotOwned) { LogThis.BaseLog(Request, LogLevel.Warn, Actions.LearnedArticle, new Dictionary <LogProperties, object> { { LogProperties.Id, userPackageBox.Id }, { LogProperties.IdType, typeof(UserPackageBox) }, { LogProperties.Message, ErrorMessages.UserNotOwnedBox }, { LogProperties.AdditionalData, model.Order }, { LogProperties.State, BoxState.NotOwned } }); return(new ResponseMessage(Tools.ResponseMessage.ResponseCode.UserStatusFaild, ErrorMessages.UserNotOwnedBox)); } var articles = userPackageBox.Box.Articles.ToList(); var article = articles.FirstOrDefault(x => x.Order == model.Order); if (article == null) { LogThis.BaseLog(Request, LogLevel.Warn, Actions.LearnedArticle, new Dictionary <LogProperties, object> { { LogProperties.Id, userPackageBox.Id }, { LogProperties.IdType, typeof(UserPackageBox) }, { LogProperties.Message, ErrorMessages.ArticleNotFound }, { LogProperties.AdditionalData, model.Order } }); return(new ResponseMessage(Tools.ResponseMessage.ResponseCode.NotFound, ErrorMessages.ArticleNotFound)); } var articleIndex = articles.IndexOf(article) + 1; if (userPackageBox.State != BoxState.Learning || articleIndex <= userPackageBox.StateValue) { LogThis.BaseLog(Request, LogLevel.Info, Actions.LearnedArticle, new Dictionary <LogProperties, object> { { LogProperties.Id, userPackageBox.Id }, { LogProperties.IdType, typeof(UserPackageBox) }, { LogProperties.Message, ErrorMessages.ArticleLearnRepeated }, { LogProperties.AdditionalData, model.Order }, { LogProperties.State, userPackageBox.State } }); return(Tools.ResponseMessage.OkWithMessage(ErrorMessages.ArticleLearnRepeated)); //todo: review this message is correct? } db.Users.Find(userId).AddScore(ScoreReason.ArticleRead); LogThis.BaseLog(Request, LogLevel.Info, Actions.ChangeBoxStateValue, new Dictionary <LogProperties, object> { { LogProperties.Id, userPackageBox.Id }, { LogProperties.IdType, typeof(UserPackageBox) }, { LogProperties.Message, ErrorMessages.ArticleLearned }, { LogProperties.AdditionalData, model.Order }, { LogProperties.State, userPackageBox.State }, { LogProperties.From, userPackageBox.StateValue }, { LogProperties.To, articleIndex } }); userPackageBox.StateValue++; if (userPackageBox.Box.Articles.Count == userPackageBox.StateValue) { LogThis.BaseLog(Request, LogLevel.Info, Actions.ChangeBoxState, new Dictionary <LogProperties, object> { { LogProperties.Id, userPackageBox.Id }, { LogProperties.IdType, typeof(UserPackageBox) }, { LogProperties.Message, ErrorMessages.UserBoxStateChanged }, { LogProperties.AdditionalData, model.Order }, { LogProperties.From, BoxState.Learning }, { LogProperties.To, BoxState.Examing } }); userPackageBox.State = BoxState.Examing; LogThis.BaseLog(Request, LogLevel.Info, Actions.ChangeBoxStateValue, new Dictionary <LogProperties, object> { { LogProperties.Id, userPackageBox.Id }, { LogProperties.IdType, typeof(UserPackageBox) }, { LogProperties.Message, ErrorMessages.UserBoxStateValueChange }, { LogProperties.AdditionalData, model.Order }, { LogProperties.State, userPackageBox.State }, { LogProperties.From, userPackageBox.StateValue }, { LogProperties.To, 0 } }); userPackageBox.StateValue = 0; db.SaveChanges(); return(Tools.ResponseMessage.OkWithMessage(ErrorMessages.UserBoxStateChanged)); } db.SaveChanges(); return(Tools.ResponseMessage.OkWithMessage(ErrorMessages.ArticleLearned)); } catch (Exception e) { LogThis.BaseLog(Request, LogLevel.Error, Actions.UserPackageBoxQuestionsRequested, new Dictionary <LogProperties, object> { { LogProperties.Error, e } }); return(Tools.ResponseMessage.InternalError); } }
public async Task <ResponseMessage> QuestionViewed(QuestionReviewingViewModel model) { try { var question = await db.Questions.FindAsync(model.QuestionId); if (question == null) { LogThis.BaseLog(Request, LogLevel.Warn, Actions.QuestionViewdRequested, new Dictionary <LogProperties, object> { { LogProperties.Id, model.QuestionId }, { LogProperties.IdType, typeof(Question) }, { LogProperties.Message, ErrorMessages.QuestionNotFound }, { LogProperties.AdditionalData, model.BoxId } }); return(new ResponseMessage(Tools.ResponseMessage.ResponseCode.NotFound, ErrorMessages.QuestionNotFound)); } var box = await db.Boxes.FindAsync(model.BoxId); if (box == null) { LogThis.BaseLog(Request, LogLevel.Warn, Actions.QuestionViewdRequested, new Dictionary <LogProperties, object> { { LogProperties.Id, model.BoxId }, { LogProperties.IdType, typeof(Box) }, { LogProperties.Message, ErrorMessages.PackageBoxNotFound }, { LogProperties.AdditionalData, model.QuestionId } }); return(new ResponseMessage(Tools.ResponseMessage.ResponseCode.NotFound, ErrorMessages.PackageBoxNotFound)); } var userPackageBox = box.UserPackageBoxes.FirstOrDefault(x => x.UserPackage.UserId == User.Identity.GetUserId()); if (userPackageBox == null) { LogThis.BaseLog(Request, LogLevel.Warn, Actions.QuestionViewdRequested, new Dictionary <LogProperties, object> { { LogProperties.Id, model.BoxId }, { LogProperties.IdType, typeof(Box) }, { LogProperties.Message, ErrorMessages.UserPackageBoxNotFound }, { LogProperties.AdditionalData, model.QuestionId } }); return(new ResponseMessage(Tools.ResponseMessage.ResponseCode.NotFound, ErrorMessages.UserPackageBoxNotFound)); } if (userPackageBox.State != BoxState.Examing) { LogThis.BaseLog(Request, LogLevel.Warn, Actions.QuestionViewdRequested, new Dictionary <LogProperties, object> { { LogProperties.Id, model.BoxId }, { LogProperties.IdType, typeof(Box) }, { LogProperties.Message, ErrorMessages.UserPackageBoxStateIncorrect }, { LogProperties.AdditionalData, model.QuestionId } }); return(new ResponseMessage(Tools.ResponseMessage.ResponseCode.NotFound, ErrorMessages.UserPackageBoxStateIncorrect)); } int index = box.Articles.ToList().IndexOf(question.Article); if (index == -1) { LogThis.BaseLog(Request, LogLevel.Warn, Actions.QuestionViewdRequested, new Dictionary <LogProperties, object> { { LogProperties.Id, model.BoxId }, { LogProperties.IdType, typeof(Box) }, { LogProperties.Message, ErrorMessages.QuestionNotInThisBox }, { LogProperties.AdditionalData, model.QuestionId } }); return(new ResponseMessage(Tools.ResponseMessage.ResponseCode.NotFound, ErrorMessages.QuestionNotInThisBox)); } LogThis.BaseLog(Request, LogLevel.Info, Actions.QuestionViewdRequested, new Dictionary <LogProperties, object> { { LogProperties.Id, model.BoxId }, { LogProperties.IdType, typeof(Box) }, { LogProperties.Message, ErrorMessages.Successful }, { LogProperties.From, userPackageBox.StateValue }, { LogProperties.To, index + 1 }, { LogProperties.AdditionalData, model.QuestionId } }); userPackageBox.StateValue = index + 1; await db.SaveChangesAsync(); return(Tools.ResponseMessage.OkWithMessage(ErrorMessages.Successful)); } catch (Exception e) { LogThis.BaseLog(Request, LogLevel.Error, Actions.UserPackageBoxQuestionsRequested, new Dictionary <LogProperties, object> { { LogProperties.Error, e } }); return(Tools.ResponseMessage.InternalError); } }