public override void Execute(ServerContext context)
        {
            try
            {
                if (context.UserModel.Emails.ContainsKey(_email))
                {
                    UserParams["error"]      = true;
                    UserParams["error_text"] = "Email exist";
                }
                else
                {
                    var user = new UserUnitModel(_email, _password, _login, 0, "user", 2);

                    user.IsNew = true;

                    context.UserModel.Add(user);
                    ServerLoggerModel.Log(TypeLog.UserMessage, $"user {_login} registered");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }

            Send();
        }
Beispiel #2
0
        public override void Deserialize(SqlDataReader dataReader)
        {
            var track = new TrackUnitModel(dataReader);

            if (!_tracksAll.ContainsKey(track.TrackName))
            {
                _tracksAll.Add(track.TrackName, track);
            }

            if (track.RightsStatus == "FREE")
            {
                for (var i = 0; i < 50; i++)
                {
                    if (!_tracksFree.ContainsKey(track.TrackName))
                    {
                        _tracksFree.Add(track.TrackName, track);
                    }
                }
            }

            if (track.RightsStatus == "DMCA")
            {
                for (var i = 0; i < 150; i++)
                {
                    if (!TracksLicensed.ContainsKey(track.TrackName))
                    {
                        TracksLicensed.Add(track.TrackName, track);
                    }
                }
            }

            ServerLoggerModel.Log(TypeLog.Info, "track deserialize was completed");
        }
Beispiel #3
0
        protected ExecuteHandler(IFormCollection data, HttpResponse response, HttpRequest request)
        {
            Request  = request;
            Response = response;
            Response.OnStarting(() =>
            {
#if DEBUG
                Response.Headers.Add("Host", "http://localhost:3000");
#endif
#if DEVELOP
                Response.Headers.Add("Host", "80.78.244.78");
#endif
                Response.Headers.Add("Access-Control-Allow-Origin", "25.57.84.220:8000");
                Response.Headers.Add("Large-Allocation", "0");
                Response.Headers.Add("Content-Range", "bytes */*");
                Response.Headers.Add("Content-Encoding", "gzip");
                Response.Headers.Add("Access-Control-Allow-Credentials", "true");
                Response.Headers.Add("Access-Control-Allow-Headers",
                                     "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With, Accept");
                Response.Headers.Add("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE,OPTIONS");
                Response.Headers.Add("X-Requested-With", "XMLHttpRequest");
                Response.Headers.Add("Accept", "*/*");
                Response.Headers.Add("Retry-After", "4");
                return(Task.FromResult(0));
            });

            Response.StatusCode = 200;
            ServerLoggerModel.Log(TypeLog.Info,
                                  $"{NameCommand}: {Response.HttpContext.Connection.RemoteIpAddress}:{Response.HttpContext.Connection.RemotePort}\r");
        }
Beispiel #4
0
        protected ExecuteCommand(IFormCollection data, HttpContext httpContext, string nameCommand)
        {
            _httpContext = httpContext;
            NameCommand  = nameCommand;
            Request      = httpContext.Request;
            Response     = httpContext.Response;
            UserParams.Add("error", false);
            UserParams.Add("error_text", string.Empty);

            _httpContext.Response.OnStarting(() =>
            {
                _httpContext.Response.Headers.Add("Host", "http://93.95.97.122:8000");
                _httpContext.Response.Headers.Add("Access-Control-Allow-Origin", "*");
                _httpContext.Response.Headers.Add("Large-Allocation", "0");
                _httpContext.Response.Headers.Add("Content-Range", "bytes */*");
                _httpContext.Response.Headers.Add("Access-Control-Allow-Credentials", "true");
                _httpContext.Response.Headers.Add("Access-Control-Allow-Headers", "Origin, X-Access-Token, X-Application-Name, X-Request-Sent-Time, X-Requested-With, Content-Type, Authorization, Accept");
                _httpContext.Response.Headers.Add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
                _httpContext.Response.Headers.Add("X-Requested-With", "XMLHttpRequest");
                _httpContext.Response.Headers.Add("Accept", "*/*");
                _httpContext.Response.Headers.Add("Retry-After", "4");
                _httpContext.Response.Headers.Add("Cross-Origin-Resource-Policy", "cross-origin");

                return(Task.FromResult(0));
            });

            _httpContext.Response.StatusCode = 200;
            ServerLoggerModel.Log(TypeLog.Info, $"{NameCommand}: {Response.HttpContext.Connection.RemoteIpAddress}:{Response.HttpContext.Connection.RemotePort}\r");
        }
Beispiel #5
0
        public void Execute(ServerContext context, ControllerCollection controllerCollection)
        {
            IDatabaseConnection databaseConnection = null;
            var data     = JsonLoader.Load(@"ServerCore/ServerConfig.json");
            var dbConfig = data.GetNode("database");

            switch (dbConfig.GetString("type"))
            {
            case "SQL":
                databaseConnection = new MongoDataBaseConnection(dbConfig.GetNode("settings"));
                break;
            }

            databaseConnection?.OpenConnect();

            if (databaseConnection.IsConnected)
            {
                ServerLoggerModel.Log(TypeLog.Info, "Connected to database");
            }
            else
            {
                ServerLoggerModel.Log(TypeLog.Fatal, "The server did not start correctly due to problems with the connection to the database");
            }

            context.DatabaseConnection = databaseConnection;
        }
        public StartController(ServerContext context, HttpContext httpContext)
        {
            _context     = context;
            _httpContext = httpContext;

            _context.ReplicationCollection = new ReplicationModelCollection();

            var dataBaseConnection = new DataBaseConnection();

            _context.DataBaseConnection = dataBaseConnection;
            dataBaseConnection.Connect();

            if (!context.DataBaseConnection.IsConnection)
            {
                ServerLoggerModel.Log(TypeLog.Fatal, "StartController: the server did not start correctly due to problems with the connection to the database");
            }
            else
            {
                CreateModels();
                CreateControllers();
                _controllerCollection.Activate();

                new Deserializer().Deserialize(context);

                ServerLoggerModel.Log(TypeLog.Info, "server started");
            }
        }
Beispiel #7
0
        public override void Deserialize(SqlDataReader dataReader)
        {
            var user = new UserUnitModel(dataReader.GetString("email"), dataReader.GetString("password"), dataReader.GetString("id"), Convert.ToSingle(dataReader.GetString("money")), dataReader.GetString("permission"), Convert.ToSingle(dataReader.GetString("hours_left")));

            Add(user);
            ServerLoggerModel.Log(TypeLog.Info, "users deserialize was completed");
        }
Beispiel #8
0
        public override void Execute(ServerContext context)
        {
            var user = context.UserModel.Get(_userId);

            user.Properties.Get <string>("session").Value       = string.Empty;
            user.Properties.Get <int>("is_authorisation").Value = 0;

            UserParams.Add("authorisation", false);

            Send();
            ServerLoggerModel.Log(TypeLog.UserMessage, $"User {_userId} logged out");
        }
        public void OpenConnect()
        {
            var connectionString = _settings.GetString("mongodb");

            try
            {
                Client      = new MongoClient(connectionString);
                IsConnected = true;
            }
            catch (Exception e)
            {
                ServerLoggerModel.Log(TypeLog.Error, $"database connection error: {e.Message}");
            }
        }
        public static void Main(string[] args)
        {
            var configServer = new ConfigurationBuilder()
                               .AddCommandLine(args)
                               .Build();

            try
            {
                ServerLoggerModel.Log(TypeLog.Info, "server is starting");
                CreateHostBuilder(configServer).Build().Run();
            }
            catch (Exception e)
            {
                ServerLoggerModel.Log(TypeLog.Fatal, $"launch server error: {e}");
            }
        }
        public void AddRequest(RegistrationHandlerData data, ServerContext context)
        {
            var userCollection = context.Data.UserCollection;
            var unique         = true;

            foreach (var user in userCollection.Users.Values)
            {
                if (user.Email.Equals(data.Email) || user.Login.Equals(data.Login))
                {
                    unique = false;
                }
            }

            if (unique)
            {
                var user = new User()
                {
                    Email    = data.Email,
                    Login    = data.Login,
                    Name     = data.Name,
                    Password = data.Password,
                };

                userCollection.AddNewUser(user);
                data.UserParams.Add("id", user.Id.ToString());
                data.UserParams.Add("err", "false");

                ServerLoggerModel.Log(TypeLog.UserMessage, $"User {user.Id} has been registered at {DateTime.Now}");
            }
            else
            {
                data.UserParams.Add("err", "true");
                data.UserParams.Add("err_t", "Email or login exists");

                ServerLoggerModel.Log(TypeLog.UserMessage, $"Registration error at {DateTime.Now}");
            }

            var sendObject = JsonConvert.SerializeObject(data.UserParams);

            data.Send(sendObject);
        }
Beispiel #12
0
        public override void Execute(ServerContext context)
        {
            UserParams.Add("permission", string.Empty);

            try
            {
                if (!context.UserModel.Emails.ContainsKey(_email))
                {
                    UserParams["error"]      = true;
                    UserParams["error_text"] = "Wrong email";

                    ServerLoggerModel.Log(TypeLog.UserMessage, "unsuccessful login attempt");
                }
                else
                {
                    var userId = context.UserModel.Emails[_email];
                    var user   = context.UserModel.Get(userId);

                    if (_password == user.Properties.Get <string>("password").Value)
                    {
                        UserParams.Add("user", user.Properties.GetSerialize());

                        ServerLoggerModel.Log(TypeLog.UserMessage, $"user {user.Properties.Get<string>("id").Value} logged in");
                    }
                    else
                    {
                        UserParams["error"]      = true;
                        UserParams["error_text"] = "Wrong password";

                        ServerLoggerModel.Log(TypeLog.UserMessage, $"user {user.Properties.Get<string>("id").Value} entered incorrect data");
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }

            Send();
        }
        public override void Execute(ServerContext context)
        {
            if (context.UserModel.Contains(_userId))
            {
                var user = context.UserModel.Get(_userId);

                UserParams.Add("authorisation", true);
                UserParams.Add("user", user.Properties.GetSerialize());
                UserParams.Add("history", JSON.ToJSON(((UserUnitModel)user).History));

                ServerLoggerModel.Log(TypeLog.UserMessage, $"user {_userId} is authorized");
            }
            else
            {
                UserParams["authorisation"] = false;

                ServerLoggerModel.Log(TypeLog.UserMessage, "user authorization interrupted");
            }

            Send();
        }
Beispiel #14
0
        protected async void Send()
        {
            try
            {
                var sendObject = JsonConvert.SerializeObject(UserParams);
                var byteArray  = System.Text.Encoding.UTF8.GetBytes(sendObject);

                _httpContext.Request.ContentType   = "application/x-www-form-urlencoded";
                _httpContext.Request.ContentLength = byteArray.Length;

                using (var dataSteam = _httpContext.Response.Body)
                {
                    dataSteam.Write(byteArray, 0, byteArray.Length);
                }

                await _httpContext.Response.CompleteAsync();
            }
            catch (Exception e)
            {
                ServerLoggerModel.Log(TypeLog.Fatal, $"Response interrupted: {e.Message}");
            }
        }