///
 /// <param name="station"></param>
 public bool AddStation(Station station)
 {
     try
     {
         logger.LogNewMessage($"Adding new station to database", LogType.INFO);
         using (var dbContext = factory.GetContext())
         {
             foreach (Track track in station.Tracks)
             {
                 dbContext.Track.Attach(track);
                 track.StationId = station.Id;
             }
             dbContext.Stations.Attach(station);
             dbContext.Places.Attach(station.Place);
             dbContext.Stations.Add(station);
             dbContext.SaveChanges();
         }
         logger.LogNewMessage($"Station added successfully.", LogType.INFO);
         return(true);
     }
     catch (Exception ex)
     {
         logger.LogNewMessage($"Error occured, station couldn't be added. Message {ex.Message}", LogType.ERROR);
         throw new FaultException(ex.Message);
     }
 }
 ///
 /// <param name="id"></param>
 public Country GeCountryByID(int id)
 {
     try
     {
         logger.LogNewMessage($"Getting country by id {id}.", LogType.INFO);
         using (var dbContext = factory.GetContext())
         {
             return(dbContext.Countries.Find(id));
         }
     }
     catch (Exception ex)
     {
         logger.LogNewMessage($"Error occured getting country by id {id}. Message {ex.Message}", LogType.ERROR);
         throw new FaultException(ex.Message);
     }
 }
Beispiel #3
0
        public override void Validate(string userName, string password)
        {
            try
            {
                logger.LogNewMessage($"Validating username and password for user {userName}", LogType.INFO);

                using (var dbContext = factory.GetContext())
                {
                    var user = dbContext.Users.Where(x => x.UserName == userName).SingleOrDefault();

                    if (user == null || user == new User())
                    {
                        var errorMessage = $"User with username {userName} does not exist in database. Access denied.";
                        logger.LogNewMessage(errorMessage, LogType.WARNING);
                        throw new FaultException(errorMessage);
                    }

                    if (!user.CheckPassword(password))
                    {
                        var errorMessage = $"Wrong password for user  {userName}. Access denied.";
                        logger.LogNewMessage(errorMessage, LogType.WARNING);
                        throw new FaultException(errorMessage);
                    }
                }

                logger.LogNewMessage($"User {userName} authenticated.", LogType.INFO);
            }catch (Exception ex)
            {
                logger.LogNewMessage($"Authentication exception. Error {ex.Message}", LogType.ERROR);
                throw new FaultException(ex.Message);
            }
        }
 ///
 /// <param name="user"></param>
 public bool AddUser(User user)
 {
     try
     {
         logger.LogNewMessage($"Adding new user with username {user.UserName} to the database", LogType.INFO);
         using (var dbContext = factory.GetContext())
         {
             dbContext.Users.Add(user);
             dbContext.SaveChanges();
         }
         logger.LogNewMessage($"User added successfully.", LogType.INFO);
         return(true);
     }
     catch (Exception ex)
     {
         logger.LogNewMessage($"Error occured, user couldn't be added. Message {ex.Message}", LogType.ERROR);
         throw new FaultException(ex.Message);
     }
 }
 ///
 /// <param name="place"></param>
 public bool AddPlace(Place place)
 {
     try
     {
         logger.LogNewMessage($"Adding new with name {place.Name} and id {place.Id} to database..", LogType.INFO);
         using (var dbContext = factory.GetContext())
         {
             dbContext.Places.Attach(place);
             dbContext.Places.Add(place);
             dbContext.SaveChanges();
         }
         logger.LogNewMessage($"Place added.", LogType.INFO);
         return(true);
     }
     catch (Exception ex)
     {
         logger.LogNewMessage($"Error occured, place couldn't be added. ERROR message : {ex.Message}", LogType.ERROR);
         throw new FaultException(ex.Message);
     }
 }
Beispiel #6
0
 ///
 /// <param name="road"></param>
 public Road AddRoad(Road road)
 {
     try
     {
         logger.LogNewMessage($"Adding new road to database", LogType.INFO);
         using (var dbContext = factory.GetContext())
         {
             foreach (Station s in road.Stations)
             {
                 dbContext.Stations.Attach(s);
             }
             dbContext.Roads.Add(road);
             dbContext.SaveChanges();
             logger.LogNewMessage($"Road added.", LogType.INFO);
             return(road);
         }
     }
     catch (Exception ex)
     {
         logger.LogNewMessage($"Error occured, couldn't add entity. Error message {ex.Message}", LogType.ERROR);
         throw new FaultException(ex.Message);
     }
 }
 ///
 /// <param name="track"></param>
 public bool AddTrack(Track track)
 {
     try
     {
         logger.LogNewMessage($"Adding new track to the database", LogType.INFO);
         using (var dbContext = factory.GetContext())
         {
             dbContext.Track.Attach(track);
             dbContext.Track.Add(track);
             dbContext.SaveChanges();
         }
         logger.LogNewMessage($"Track added successfully.", LogType.INFO);
         return(true);
     }
     catch (Exception ex)
     {
         logger.LogNewMessage($"Error occured, track couldn't be added. Message {ex.Message}", LogType.ERROR);
         throw new FaultException(ex.Message);
     }
 }
        private void InitializeCountries()
        {
            //Initialize countries, countries were retrieved from https://textlists.info/geography/countries-of-the-world/
            logger.LogNewMessage($"Initializing countries..", LogType.INFO);


            try
            {
                var fileContent    = File.ReadAllLines("countries.txt");
                var worldCountries = new List <string>(fileContent);
                logger.LogNewMessage($"Fetching countries from repository", LogType.DEBUG);
                using (var dbContext = factory.GetContext())
                {
                    var countries = dbContext.Countries.ToList();

                    List <Country> countriesToAdd = new List <Country>();
                    foreach (string countryName in worldCountries)
                    {
                        if (countries.Where(x => x.Name == countryName).Count() == 0)
                        {
                            countriesToAdd.Add(new Country(0, countryName));
                        }
                    }

                    if (countriesToAdd.Count > 0)
                    {
                        dbContext.Countries.AddRange(countriesToAdd);
                    }
                    dbContext.SaveChanges();

                    logger.LogNewMessage($"Countries intialized successfully.", LogType.INFO);
                }
            }
            catch (Exception ex)
            {
                logger.LogNewMessage($"Error occured trying to intialize countries. Message {ex.Message}", LogType.ERROR);
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="DevComUnitOfWork"/> class.
 /// </summary>
 /// <param name="contextFactory">
 /// The context factory.
 /// </param>
 /// <param name="postRepository">
 /// The post Repository.
 /// </param>
 public DevComUnitOfWork(IDatabaseContextFactory<DevComContext> contextFactory, IPostRepository postRepository)
 {
     this.postRepository = postRepository;
     this.context = contextFactory.GetContext();
 }