/// /// <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); } }
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); } }
/// /// <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(); }