Пример #1
0
 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);
     }
 }
Пример #2
0
        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);
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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);
            }
        }
Пример #5
0
        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));
        }
Пример #6
0
        private void tim_Tick(object sender, EventArgs e)
        {
            Thread tipf = new Thread(InitService);

            tipf.Start();

            LogThis.LogThisValue("##### Tim_Tick - Init Raw Material Web Service ####");
        }
Пример #7
0
        private void tim_Tick_SolicitudMateriales(object sender, EventArgs e)
        {
            Thread tipf = new Thread(InitServiceMatRequest);

            tipf.Start();

            LogThis.LogThisValue("##### Tim_Tick - Material Request - Web Service ####");
        }
Пример #8
0
        private void tim_Tick_Camx(object sender, EventArgs e)
        {
            Thread tipf = new Thread(InitServiceCAMX);

            tipf.Start();

            LogThis.LogThisValue("##### Tim_Tick - CAMX Reboot ####", "CAMX");
        }
Пример #9
0
        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);
            }
        }
Пример #10
0
        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);
            }
        }
Пример #11
0
        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); }
        }
Пример #12
0
        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);
        }
Пример #13
0
        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);
        }
Пример #14
0
        /*****************************************************************************************************/
        /******************************* 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);
        }
Пример #15
0
        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); }
        }
Пример #16
0
        /*****************************************************************************************************/
        /******************************* 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);
            }
        }
Пример #17
0
        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); }
        }
Пример #18
0
        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);
        }
Пример #19
0
        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);
        }
Пример #20
0
        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); }
        }
Пример #21
0
        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);
            }
        }
Пример #22
0
        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);
            }
        }
Пример #23
0
        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);
        }
Пример #24
0
        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);
            }
        }
Пример #25
0
        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);
            }
        }
Пример #26
0
        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);
            }
        }
Пример #27
0
        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);
            }
        }
Пример #28
0
        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);
            }
        }
Пример #29
0
        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);
            }
        }
Пример #30
0
        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);
            }
        }