123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- using Microsoft.EntityFrameworkCore;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using UnivateProperties_API.Containers.Misc;
- using UnivateProperties_API.Containers.Property;
- using UnivateProperties_API.Context;
- using UnivateProperties_API.Model.Misc;
-
- namespace UnivateProperties_API.Repository.Misc
- {
- public class CarouselRepository : ICarouselRepository
- {
- private readonly DataContext dBContext;
-
- public CarouselRepository(DataContext _dBContext)
- {
- dBContext = _dBContext;
- }
-
- public List<Carousel> Get(Func<Carousel, bool> where)
- {
- var CarouselList = dBContext.Carousel.Where(where).ToList();
-
- foreach (var item in CarouselList)
- {
- if (!string.IsNullOrEmpty(item.Image) && !item.Image.StartsWith("data:image"))
- item.Image = ImageFormatter.ImageToBase64(item.Image);
- }
-
- return CarouselList;
- }
-
- public List<Carousel> GetAll()
- {
- var CarouselList = dBContext.Carousel.ToList();
-
- foreach (var item in CarouselList)
- {
- if (!string.IsNullOrEmpty(item.Image) && !item.Image.StartsWith("data:image"))
- item.Image = ImageFormatter.ImageToBase64(item.Image);
- }
-
- return CarouselList;
- }
-
- public Carousel GetDetailed(Func<Carousel, bool> first)
- {
- return dBContext.Carousel.FirstOrDefault(first);
- }
-
- public List<Carousel> GetDetailedAll()
- {
- return dBContext.Carousel.ToList();
- }
-
- public void Insert(Carousel item)
- {
- string image = item.Image;
- item.Image = "";
- dBContext.Add(item);
- Save();
-
- bool saveFiles = false;
- var loc = dBContext.Location.FirstOrDefault().PropertyImageLocation;
- var lastID = item.Id;
- item.Id = lastID;
- if (!string.IsNullOrEmpty(loc))
- {
- saveFiles = true;
- loc = loc.Replace("Properties", "Carousel");
- if (Directory.Exists(loc))
- {
- Directory.CreateDirectory(loc);
- }
- }
- if (saveFiles)
- {
- string path = ImageFormatter.Base64ToImage(image, loc, lastID.ToString());
- item.Image = path;
- }
-
- Update(item);
-
- }
-
- public void Insert(IEnumerable<Carousel> items)
- {
- foreach (var item in items)
- {
- dBContext.Carousel.Add(item);
- Save();
- }
- }
-
- public void Remove(Carousel item)
- {
- dBContext.Carousel.Remove(item);
- Save();
- }
-
- public void Remove(IEnumerable<Carousel> items)
- {
- foreach (var item in items)
- {
- dBContext.Carousel.Remove(item);
- Save();
- }
- }
-
- public void RemoveAtId(int item)
- {
- var Carousel = Get(x => x.Id == item).FirstOrDefault();
- if (Carousel != null)
- {
- dBContext.Carousel.Remove(Carousel);
- Save();
- }
- }
-
- public void Save()
- {
- dBContext.SaveChanges();
- }
-
- public void Update(Carousel item)
- {
- dBContext.Entry(item).State = EntityState.Modified;
- Save();
- }
-
- public int NewId()
- {
- // Not sure if properties need it
- return 0;
- }
-
- public List<CarouselList> GetCarouselItems()
- {
- List<CarouselList> list = new List<CarouselList>();
- var CarouselList = dBContext.Carousel.ToList();
-
- foreach (var item in CarouselList)
- {
- if (!string.IsNullOrEmpty(item.Image) && !item.Image.StartsWith("data:image"))
- item.Image = ImageFormatter.ImageToBase64(item.Image);
-
- var carItem = new CarouselList()
- {
- Id = item.Id,
- Image = item.Image,
- Header = item.Header
- };
- if (item.PropertyId > 0)
- {
- var property = dBContext.Properties.Include("Province").Include("City").Include("Suburb").Where(p => p.Id == item.PropertyId).FirstOrDefault();
- carItem.Address = string.Format("{0}, {1} <br/>{2}", property.Suburb.Description, property.City.Description, property.AddressLine3);
- carItem.IsProperty = true;
- }
- if (item.TimeshareId > 0)
- {
- var timeshare = dBContext.Weeks.Where(t => t.Id == item.TimeshareId).FirstOrDefault();
- carItem.Bedrooms = timeshare.Bedrooms;
- carItem.Sleeps = timeshare.MaxSleep;
- carItem.Arrival = timeshare.ArrivalDate;
- carItem.Departure = timeshare.DepartureDate;
- carItem.IsProperty = false;
- }
-
- list.Add(carItem);
- }
-
- return list;
- }
-
- public CarouselList GetCarousel(int id)
- {
- var carousel = dBContext.Carousel.Where(c => c.Id == id).FirstOrDefault();
-
- CarouselList item = new CarouselList();
- if (carousel != null)
- {
- foreach (string prop in carousel.GetAllProperties())
- {
- if (prop != "Item" && prop != "Display")
- item[prop] = carousel[prop];
- }
-
- if (item.PropertyId > 0)
- {
- var property = dBContext.Properties.Include("Province").Include("City").Include("Suburb").Where(p => p.Id == item.PropertyId).FirstOrDefault();
- item.Address = string.Format("{0}, {1} <br/>{2}", property.Suburb.Description, property.City.Description, property.AddressLine3);
- item.IsProperty = true;
- }
- if (item.TimeshareId > 0)
- {
- var timeshare = dBContext.Weeks.Where(t => t.Id == item.TimeshareId).FirstOrDefault();
- item.Bedrooms = timeshare.Bedrooms;
- item.Sleeps = timeshare.MaxSleep;
- item.Arrival = timeshare.ArrivalDate;
- item.Departure = timeshare.DepartureDate;
- item.IsProperty = false;
- }
- }
-
- return item;
- }
- }
- }
|