public virtual IEnumerable <IAuthorizedPerson> FindPersons(SevenWondersContext db, SearchViewModel search)
        {
            DbSet <T> dbSet = db.Set <T>();
            var       query = (from person in dbSet
                               select person).AsEnumerable();

            if (!string.IsNullOrWhiteSpace(search.FirstName))
            {
                query = query.Where(x => x.FirstName.Contains(search.FirstName));
            }
            if (!string.IsNullOrWhiteSpace(search.LastName))
            {
                query = query.Where(x => x.LastName.Contains(search.LastName));
            }
            if (!string.IsNullOrWhiteSpace(search.PhoneNumber))
            {
                query = query.Where(x => x.PhoneNumber.Contains(search.PhoneNumber));
            }
            if (search.DateOfBirthFrom != null && search.DateOfBirthFrom != DateTime.MinValue)
            {
                query = query.Where(x => x.DateOfBirth >= search.DateOfBirthFrom);
            }
            if (search.DateOfBirthTo != null && search.DateOfBirthTo != DateTime.MinValue)
            {
                query = query.Where(x => x.DateOfBirth <= search.DateOfBirthTo);
            }
            return(query);
        }
        public FullManagerViewModel GetFullManager(SevenWondersContext db, int Id)
        {
            var manager     = db.Managers.Find(Id);
            var usermanager = db.Users.FirstOrDefault(x => x.Email == manager.Email);
            var fullmanager = new FullManagerViewModel(manager.Id, manager.Email, usermanager.Password, manager.FirstName, manager.LastName, manager.PhoneNumber, manager.DateOfBirth);

            return(fullmanager);
        }
Esempio n. 3
0
        public static void ReceiveRequest()
        {
            SevenWondersContext db = new SevenWondersContext();
            CountriesRepository countriesRepository = new CountriesRepository(db);

            var factory = new ConnectionFactory()
            {
                HostName = "localhost"
            };

            factory.Protocol = Protocols.DefaultProtocol;
            factory.Port     = AmqpTcpEndpoint.UseDefaultPort;

            using (var connection = factory.CreateConnection())
                using (var channel = connection.CreateModel())
                {
                    channel.QueueDeclare(queue: "rpc_queue", durable: false,
                                         exclusive: false, autoDelete: false, arguments: null);
                    channel.BasicQos(0, 1, false);
                    var consumer = new EventingBasicConsumer(channel);
                    channel.BasicConsume(queue: "rpc_queue",
                                         autoAck: false, consumer: consumer);
                    Console.WriteLine(" [x] Awaiting RPC requests");

                    consumer.Received += (model, ea) =>
                    {
                        string response = null;

                        var body       = ea.Body;
                        var props      = ea.BasicProperties;
                        var replyProps = channel.CreateBasicProperties();
                        replyProps.CorrelationId = props.CorrelationId;

                        try
                        {
                            var countries = countriesRepository.GetCountries();
                            var json      = JsonConvert.SerializeObject(countries);
                            response = json;
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(" [.] " + e.Message);
                            response = "";
                        }
                        finally
                        {
                            var responseBytes = Encoding.UTF8.GetBytes(response);
                            channel.BasicPublish(exchange: "", routingKey: props.ReplyTo,
                                                 basicProperties: replyProps, body: responseBytes);
                            channel.BasicAck(deliveryTag: ea.DeliveryTag,
                                             multiple: false);
                        }
                    };

                    Console.WriteLine(" Press [enter] to exit.");
                    Console.ReadLine();
                }
        }
        public virtual bool ChangePersonStatus(SevenWondersContext db, int id)
        {
            DbSet <T> dbSet    = db.Set <T>();
            var       result   = false;
            var       customer = dbSet.Find(id);

            if (customer != null)
            {
                customer.IsDeleted       = !customer.IsDeleted;
                db.Entry(customer).State = EntityState.Modified;
                result = true;
                db.SaveChanges();
            }
            return(result);
        }
        public void AddFullManager(SevenWondersContext db, FullManagerViewModel user, int[] countries)
        {
            if (db.Users.Any(x => x.Email == user.Email))
            {
                throw new OverflowException("user with this email is already exist");
            }
            Utils  utils    = new Utils();
            string password = utils.GetEncodedHash(user.Password, Security.solt);

            db.Users.Add(new User()
            {
                Email = user.Email, Password = password, RoleId = 3
            });
            Manager manager = new Manager()
            {
                DateOfBirth = user.DateOfBirth.ToUniversalTime(), FirstName = user.FirstName, LastName = user.LastName, PhoneNumber = user.PhoneNumber, Email = user.Email, IsDeleted = false
            };

            db.Managers.Add(manager);
            db.SaveChanges();
            AddCountriesForManager(db, manager, countries);
        }
 private void AddCountriesForManager(SevenWondersContext db, Manager manager, int[] countries)
 {
     if (manager.Countries != null)
     {
         foreach (var country in manager.Countries.ToList())
         {
             country.ManagerId       = null;
             db.Entry(country).State = EntityState.Modified;
         }
     }
     db.SaveChanges();
     if (countries != null)
     {
         var length = countries.Length;
         for (int i = 0; i < length; i++)
         {
             var country = db.Coutries.Find(countries[i]);
             country.ManagerId       = manager.Id;
             db.Entry(country).State = EntityState.Modified;
         }
     }
     db.SaveChanges();
 }
        public void EditFullManager(SevenWondersContext db, FullManagerViewModel user, int[] countries)
        {
            Manager manager    = db.Managers.Find(user.Id);
            var     userFromDb = db.Users.FirstOrDefault(x => x.Email == manager.Email);

            manager.LastName        = user.LastName;
            manager.FirstName       = user.FirstName;
            manager.Email           = user.Email;
            manager.PhoneNumber     = user.PhoneNumber;
            manager.DateOfBirth     = user.DateOfBirth;
            db.Entry(manager).State = EntityState.Modified;
            db.SaveChanges();

            Utils utils = new Utils();

            if (user.Password != userFromDb.Password)
            {
                userFromDb.Password = utils.GetEncodedHash(user.Password, Security.solt);
            }
            userFromDb.Email = user.Email;
            AddCountriesForManager(db, manager, countries);
            db.Entry(userFromDb).State = EntityState.Modified;
            db.SaveChanges();
        }
 public override IEnumerable <IAuthorizedPerson> FindPersons(SevenWondersContext db, SearchViewModel search)
 {
     return(base.FindPersons(db, search));
 }
 public CityRepository(SevenWondersContext c)
 {
     context = c;
 }
 public CityRepository()
 {
     context = new SevenWondersContext();
 }
 public CountriesRepository(SevenWondersContext context)
 {
     this.db = context;
 }