示例#1
0
        public List <Rate> rates()
        {
            var data = new List <Rate>();

            try
            {
                var db    = new DB();
                var Query = @"select ap.id, ap.images, ap.min_price, ap.type_description, ap.num_beds, r.message_rate,r.rate, ap.free_from, ap.free_to,ap.address, ap.num_baths,ap.num_bedrooms, ap.area,ap.cost_per_person from rate r  
                                                                                                            Right JOIN apartments ap ON (r.apartment_id = ap.id)";
                var cmd   = new NpgsqlCommand();
                cmd.CommandText = Query;
                cmd.Connection  = db.npgsqlConnection;
                NpgsqlDataReader DataReader;

                DataReader = cmd.ExecuteReader();

                cmd.Dispose();
                if (DataReader.HasRows)
                {
                    while (DataReader.Read())
                    {
                        var ap = new Apartments();
                        ap.id        = Convert.ToInt32(DataReader.GetValue(0));
                        ap.free_from = Convert.ToDateTime(DataReader.GetValue(7));
                        ap.free_to   = Convert.ToDateTime(DataReader.GetValue(8));
                        ap.address   = DataReader.GetValue(9).ToString();
                        var apartment   = new ApartmentsDetails();
                        var imagestring = "<img src=' " + DataReader.GetValue(1).ToString() + " ' style='height:80px; width:80px'>";
                        apartment.images           = imagestring;
                        apartment.min_price        = Convert.ToSingle(DataReader.GetValue(2));
                        apartment.type_description = DataReader.GetValue(3).ToString();
                        apartment.num_beds         = Convert.ToInt32(DataReader.GetValue(4));
                        apartment.num_baths        = Convert.ToInt32(DataReader.GetValue(10));
                        apartment.num_bedrooms     = Convert.ToInt32(DataReader.GetValue(11));
                        apartment.area             = Convert.ToInt32(DataReader.GetValue(12));
                        apartment.cost_per_person  = Convert.ToSingle(DataReader.GetValue(13));
                        apartment.apartment        = ap;
                        var temp = 0;
                        if (DataReader["rate"] != DBNull.Value)
                        {
                            temp = Convert.ToInt32(DataReader.GetValue(6));
                        }
                        data.Add(new Rate
                        {
                            message_rate = DataReader.GetValue(5).ToString(),
                            apartment    = apartment,
                            rate         = temp
                        });
                    }
                }
                DataReader.Close();
                DataReader.Dispose();
                db.close();
                data = data.OrderByDescending(a => a.apartment.min_price).ToList();
            }
            catch (Exception ex)
            {
            }
            return(data);
        }
        private static void SetRelationalProperties()
        {
            foreach (var owner in Owners.Where(o => o.Id.HasValue))
            {
                owner.Apartments = Apartments.Where(a =>
                {
                    if (a.OwnerId != owner.Id.Value)
                    {
                        return(false);
                    }

                    a.Owner   = owner;
                    a.OwnerId = owner.Id.Value;
                    return(true);
                }).ToArray();
            }

            foreach (var building in Buildings.Where(b => b.Id.HasValue))
            {
                building.Apartments = Apartments.Where(a =>
                {
                    if (a.BuildingId != building.Id.Value)
                    {
                        return(false);
                    }

                    a.Building   = building;
                    a.BuildingId = building.Id.Value;
                    return(true);
                }).ToArray();
            }
        }
 public ActionResult Edit(string Id, Apartments apartments)
 {
     apartments.objectId = Id;
     apartments.id       = new Random().Next();
     _apartmentsService.Update(Id, apartments);
     return(RedirectToAction(nameof(Index)));
 }
示例#4
0
 public void AddReservation(Reservation reservation)
 {
     reservation.ReservedApartment = Apartments.Where(a => a.IsDeleted == false && a.Id == reservation.ReservedApartment.Id).FirstOrDefault();
     reservation.Guest             = Users.Where(u => u.IsDeleted == false && u.Username == reservation.Guest.Username).FirstOrDefault() as Guest;
     Reservations.Add(reservation);
     SaveChanges();
 }
示例#5
0
        public async Task ManageFavorite(Apartment apartment)
        {
            Loading = true;

            if (apartment.IsFavorite)
            {
                apartment.IsFavorite = false;

                var favorite = DataService.Favorites.FirstOrDefault(x => x.ApartmentId == apartment.Id);
                await DataService.SyncFavorites.DeleteAsync(favorite);

                DataService.Favorites.Remove(favorite);
                Apartments.Remove(apartment);
            }
            else
            {
                apartment.IsFavorite = true;

                var favorite = new Favorite
                {
                    Id          = Guid.NewGuid().ToString(),
                    UserId      = DataService.User.Id,
                    ApartmentId = apartment.Id
                };

                await DataService.SyncFavorites.InsertAsync(favorite);

                DataService.Favorites.Add(favorite);
            }

            await DataService.SyncApartments.UpdateAsync(apartment);

            Loading = false;
        }
示例#6
0
        public void RemoveUser(string username)
        {
            var us = Users.SingleOrDefault(i => i.Username == username);

            var apartments = Apartments.Where(i => i.Host.Username == us.Username && i.IsDeleted == false);

            foreach (var item in apartments)
            {
                RemoveApartment(item.Id);
            }

            var comments = Comments.Where(c => c.IsDeleted == false && c.GuestThaWroteComment.Username == username);

            foreach (var item in comments)
            {
                RemoveComment(item);
            }

            var reservations = Reservations.Where(r => r.IsDeleted == false && r.Guest.Username == username);

            foreach (var item in reservations)
            {
                RemoveReservation(item);
            }

            us.IsDeleted = true;
            SaveChanges();
        }
        public ActionResult <Apartments> Create(Apartments apartment)
        {
            apartment.id = new Random().Next();
            _apartmentsService.Create(apartment);

            return(CreatedAtRoute("Details", new { id = apartment.objectId.ToString() }, apartment));
        }
示例#8
0
        public Apartments Get(int id)
        {
            Apartments apartment = null;

            _dbRead.Execute(
                "ApartmentsGetById",
                new[]
            {
                new SqlParameter("@id", id)
            },
                r => apartment = new Apartments()
            {
                Id            = Read <int>(r, "Id"),
                id_Estate     = Read <int>(r, "id_Estate"),
                Id_StairCase  = Read <int?>(r, "Id_StairCase"),
                Name          = Read <string>(r, "Name"),
                Number        = Read <int>(r, "Number"),
                HasHeatHelp   = Read <bool?>(r, "HasHeatHelp"),
                Telephone     = Read <string>(r, "Telephone"),
                Password      = Read <string>(r, "Password"),
                Email         = Read <string>(r, "Email"),
                ExtraInfo     = Read <string>(r, "ExtraInfo"),
                Dependents    = Read <int>(r, "Dependents"),
                CreatedDate   = Read <DateTime>(r, "CreatedDate"),
                CotaIndiviza  = Read <decimal?>(r, "CotaIndiviza"),
                FondRulment   = Read <decimal?>(r, "FondRulment"),
                FondReparatii = Read <decimal?>(r, "FondReparatii")
            });

            return(apartment);
        }
示例#9
0
        public ActionResult DeleteConfirmed(int id)
        {
            Apartments apartments = db.Apartments.Find(id);

            db.Apartments.Remove(apartments);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#10
0
 public List <Apartment> GetMyApartments(long profileId)
 {
     return(Apartments.Where(m => m.ProfileId == profileId)
            .Include(m => m.Type)
            .Include(m => m.ApartmentOptions)
            .Include(m => m.ApartmentPhotos.Select(k => k.Links))
            .ToList());
 }
示例#11
0
        public static Apartments Add(Apartments apartment)
        {
            var result = GetContext().Apartments.Add(apartment);

            GetContext().SaveChanges();

            return(result);
        }
示例#12
0
        private static decimal?GetValue(Apartments apartment, int year, int month, DebtTypes debtType)
        {
            decimal?value              = null;
            int     twoMonthsAgo       = month - 2;
            int     yearOfTwoMonthsAgo = year;

            if (month - 2 < 1)
            {
                yearOfTwoMonthsAgo = year - 1;
                twoMonthsAgo       = month - 2 + 12;
            }

            switch (debtType.Id)
            {
            case (int)DebtType.LunarExpense:
                break;

            case (int)DebtType.Restants:
                value = GetAllUnpaiedOfType(apartment, yearOfTwoMonthsAgo, twoMonthsAgo + 1,
                                            DebtType.LunarExpense).Sum(ad => ad.Value);
                break;

            case (int)DebtType.Penalties:
                if (!apartment.Associations.penaltyRate.HasValue)
                {
                    return(null);
                }

                decimal?intermediatevalue = 0m;

                var apDebts = GetAllUnpaiedOfType(apartment, yearOfTwoMonthsAgo, twoMonthsAgo,
                                                  DebtType.LunarExpense);
                foreach (var apDebt in apDebts)
                {
                    if (!apDebt.Value.HasValue)
                    {
                        continue;
                    }
                    var valueToAdd = apDebt.Value.Value * 30 * apartment.Associations.penaltyRate.Value;
                    intermediatevalue = intermediatevalue + valueToAdd;
                }

                break;

            case (int)DebtType.RulmentFond:
                //see how we should store it
                // determin date of finish
                break;

            case (int)DebtType.Repairfond:
                //see how we should store it
                // determin date of finish
                break;
            }

            return(value);
        }
示例#13
0
 public void AddApartment(Apartment apartment)
 {
     if (Apartments == null)
     {
         Apartments = new List <Apartment>();
     }
     Apartments.Add(apartment);
     Document.SetPropertyValue("Apartments", Apartments);
 }
        /// <summary>
        /// Добавить асинхронно нового пользователя
        /// </summary>
        /// <param name="aps"></param>
        /// <returns></returns>
        public async Task AddApartmentAsync(Apartments aps)
        {
            var apartmentAdd = await context.Apartments.FindAsync(aps.Id);

            if (apartmentAdd == null)
            {
                context.Add(aps);
                await context.SaveChangesAsync();
            }
        }
示例#15
0
        public override bool IsValid(object value)
        {
            Apartments validatableApartments = value as Apartments;

            if (validatableApartments.Number <= 0)
            {
                return(false);
            }
            return(true);
        }
 public IActionResult Create(Apartments apartments)
 {
     if (ModelState.IsValid)
     {
         apartments.id = new Random().Next();
         _apartmentsService.Create(apartments);
         return(RedirectToAction(nameof(Index)));
     }
     return(View(apartments));
 }
示例#17
0
        public void AddComment(Comment comment, int apartmentId)
        {
            var apartment = Apartments.Where(a => a.IsDeleted == false && a.Id == apartmentId).FirstOrDefault();
            var guest     = Users.Where(u => u.IsDeleted == false && u.Username == comment.GuestThaWroteComment.Username).FirstOrDefault() as Guest;

            comment.GuestThaWroteComment = guest;
            comment.Apartment            = apartment;
            Comments.Add(comment);
            SaveChanges();
        }
示例#18
0
        public void LoadApartments()
        {
            Apartments.Add(new Apartment(1001, "street 1", 1, "3 star",
                                         new AparType(3, 3, 50, true, true, true, true, "very well located")));

            Apartments.Add(new Apartment(1002, "street 2", 1, "3 star",
                                         new AparType(3, 3, 50, true, true, true, true, "very well located")));

            Apartments.Add(new Apartment(1003, "street 2", 1, "3 star",
                                         new AparType(3, 3, 50, true, true, true, true, "very well located")));

            Apartments.Add(new Apartment(2001, "street 1", 1, "3 star",
                                         new AparType(3, 3, 50, true, true, true, true, "very well located")));

            Apartments.Add(new Apartment(2002, "street 2", 1, "3 star",
                                         new AparType(3, 3, 50, true, true, true, true, "very well located")));

            Apartments.Add(new Apartment(2003, "street 2", 1, "3 star",
                                         new AparType(3, 3, 50, true, true, true, true, "very well located")));

            Apartments.Add(new Apartment(3001, "street 1", 1, "3 star",
                                         new AparType(3, 3, 50, true, true, true, true, "very well located")));

            Apartments.Add(new Apartment(3002, "street 2", 1, "3 star",
                                         new FrCity {
                Name = "Marseille", ImageUrl = "../assets/Marsay.jpg"
            },
                                         new AparType(3, 3, 50, true, true, true, true, "very well located"),
                                         new Owner("id 1", "mmm", "123456")));
            Apartments.Add(new Apartment(3003, "street 2", 1, "3 star",
                                         new FrCity {
                Name = "Marseille", ImageUrl = "../assets/Marsay.jpg"
            },
                                         new AparType(3, 3, 50, true, true, true, true, "very well located"),
                                         new Owner("id 1", "ttt", "123456")));
            Apartments.Add(new Apartment(4001, "street 1", 1, "3 star",
                                         new FrCity {
                Name = "Montpellie", ImageUrl = "../assets/Nice.jpg"
            },
                                         new AparType(3, 3, 50, true, true, true, true, "very well located"),
                                         new Owner("id 1", "ggg", "123456")));
            Apartments.Add(new Apartment(4002, "street 2", 1, "3 star",
                                         new FrCity {
                Name = "Nice", ImageUrl = "../assets/Nice.jpg"
            },
                                         new AparType(3, 3, 50, true, true, true, true, "very well located"),
                                         new Owner("id 1", "sss", "123456")));
            Apartments.Add(new Apartment(4003, "street 2", 1, "3 star",
                                         new FrCity {
                Name = "Lion", ImageUrl = "../assets/Nice.jpg"
            },
                                         new AparType(3, 3, 50, true, true, true, true, "very well located"),
                                         new Owner("id 1", "xxx", "123456")));
        }
示例#19
0
        internal decimal GetApartmentArea(int apartmentId)
        {
            var apartment = Apartments.FirstOrDefault(a => a.ApartmentId == apartmentId);

            if (apartment is null)
            {
                throw new ArgumentNullException($"No Apartment With {apartmentId} Id Exists");
            }

            return(apartment.Area);
        }
示例#20
0
        internal IEnumerable <(int PayerId, int DaysLived, int OccupantCount)> GetApartmentPayerResidenceInfos(DateTime from, DateTime to, int apartmentId)
        {
            var apartment = Apartments.FirstOrDefault(a => a.ApartmentId == apartmentId);

            if (apartment is null)
            {
                throw new ArgumentNullException($"No Apartment With {apartmentId} Id Exists");
            }

            return(apartment.GetPayerResisdenceInfo(from, to));
        }
        private async Task Delete(int id)
        {
            var apartment = Apartments.FirstOrDefault(p => p.Id.Equals(id));

            var confirmed = await Js.InvokeAsync <bool>("confirm", $"Are you sure you want to delete the apartment with Id: {apartment.Id}?");

            if (confirmed)
            {
                await OnDeleted.InvokeAsync(id);
            }
        }
示例#22
0
        public List <ApartmentsDetails> GetApartments()
        {
            try
            {
                var db    = new DB();
                var Query = @"select user_id, id, address, reach_place, free_from, free_to, max_people,min_price, cost_per_person,description,num_beds,num_baths,
                                    num_bedrooms,area,rules,images,lonlat, type_description from apartments";
                var cmd   = new NpgsqlCommand();
                cmd.CommandText = Query;
                cmd.Connection  = db.npgsqlConnection;
                NpgsqlDataReader DataReader;

                DataReader = cmd.ExecuteReader();

                cmd.Dispose();
                if (DataReader.HasRows)
                {
                    while (DataReader.Read())
                    {
                        var apartmentObject = new Apartments();
                        apartmentObject.id        = Convert.ToInt32(DataReader.GetValue(1));
                        apartmentObject.address   = DataReader.GetValue(2).ToString();
                        apartmentObject.free_from = Convert.ToDateTime(DataReader.GetValue(4));
                        apartmentObject.free_to   = Convert.ToDateTime(DataReader.GetValue(5));
                        data.Add(new ApartmentsDetails
                        {
                            user_id          = Convert.ToInt32(DataReader.GetValue(0)),
                            reach_place      = DataReader.GetValue(3).ToString(),
                            max_people       = Convert.ToInt32(DataReader.GetValue(6)),
                            min_price        = Convert.ToSingle(DataReader.GetValue(7)),
                            cost_per_person  = Convert.ToSingle(DataReader.GetValue(8)),
                            description      = DataReader.GetValue(9).ToString(),
                            num_beds         = Convert.ToInt32(DataReader.GetValue(10)),
                            num_baths        = Convert.ToInt32(DataReader.GetValue(11)),
                            num_bedrooms     = Convert.ToInt32(DataReader.GetValue(12)),
                            area             = Convert.ToInt32(DataReader.GetValue(13)),
                            rules            = DataReader.GetValue(14).ToString(),
                            images           = DataReader.GetValue(15).ToString(),
                            lonlat           = DataReader.GetValue(16).ToString(),
                            type_description = DataReader.GetValue(17).ToString(),
                            apartment        = apartmentObject
                        });
                    }
                }
                DataReader.Close();
                DataReader.Dispose();
                data = data.OrderByDescending(a => a.user_id).ToList();
                db.close();
            }
            catch (Exception ex)
            {
            }
            return(data);
        }
示例#23
0
 public void Add(Apartment apartment)
 {
     if (Apartments == null)
     {
         Apartments = new List <Apartment>();
     }
     if (Contain(apartment))
     {
         throw new InvalidOperationException("Apartment has already existed!");
     }
     Apartments.Add(apartment);
 }
 /// <summary>
 /// Сохранение апартамента
 /// </summary>
 /// <param name="aps"></param>
 public void SaveApartment(Apartments aps)
 {
     if (aps.Id == 0)
     {
         context.Apartments.Add(aps);
     }
     else
     {
         context.Entry(aps).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
     }
     context.SaveChanges();
 }
示例#25
0
        public void EditApartment(Apartment apartment)
        {
            var apa = Apartments.SingleOrDefault(s => s.Id == apartment.Id);

            Entry(apa).CurrentValues.SetValues(apartment);
            apa.Amenities = new List <Amenities>();
            foreach (var item in apartment.Amenities)
            {
                apa.Amenities.Add(Amenities.SingleOrDefault(s => s.Id == item.Id));
            }
            SaveChanges();
        }
示例#26
0
 public IActionResult Edit(Apartments apartments)
 {
     if (ModelState.IsValid)
     {
         _repository.SaveApartments(apartments);
         TempData["message"] = $"Номер {apartments.Number} успешно сохранен";
         return(RedirectToAction("List"));
     }
     else
     {
         return(View(apartments));
     }
 }
示例#27
0
    public static SqlString GetStreet(SqlString address)
    {
        if (address.IsNull)
        {
            return(null);
        }
        if (string.IsNullOrWhiteSpace(address.Value))
        {
            return(null);
        }
        try
        {
            var s  = address.Value.Replace(".", "");
            var la = s.Split(' ').ToList();

            if (AllDigits(la[0]))
            {
                la.RemoveAt(0);
            }
            if (Quadrants.Contains(la[0].ToUpper()))
            {
                la.RemoveAt(0);
            }

            la.Reverse();
            if (AllDigits(la[0]))
            {
                la.RemoveAt(0);
            }
            if (la[0].StartsWith("#"))
            {
                la.RemoveAt(0);
            }
            if (Apartments.Contains(la[0].ToUpper()))
            {
                la.RemoveAt(0);
            }
            if (StreetTypes.Contains(la[0].ToUpper()))
            {
                la.RemoveAt(0);
            }
            la.Reverse();

            var street = string.Join(" ", la);
            return(street);
        }
        catch (Exception)
        {
            return(null);
        }
    }
示例#28
0
        public void RemoveUser(User user)
        {
            var us = Users.SingleOrDefault(i => i.Username == user.Username);

            var apartments = Apartments.Where(i => i.Host.Username == us.Username && i.IsDeleted == false);

            foreach (var item in apartments)
            {
                item.IsDeleted = true;
            }

            us.IsDeleted = true;
            SaveChanges();
        }
示例#29
0
        // GET: Apartments/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Apartments apartments = db.Apartments.Include(a => a.ApartmentType).ToList().Find(x => x.Id == id);

            if (apartments == null)
            {
                return(HttpNotFound());
            }
            return(View(apartments));
        }
示例#30
0
        public override bool IsValid(object value)
        {
            IEnumerable <Apartments> listOfApartments = db.Apartments;
            Apartments validatableApartments          = value as Apartments;

            foreach (Apartments a in listOfApartments)
            {
                if (validatableApartments.Number == a.Number)
                {
                    return(false);
                }
            }
            return(true);
        }