From ec53cb8b9428065ed2fed713daedf2ee28b651e7 Mon Sep 17 00:00:00 2001 From: Paulius Klezys Date: Wed, 10 May 2017 09:22:36 +0200 Subject: Improvements --- .../ApartmentManager/ApartmentManager.csproj | 1 + .../Handler/BoardResidentsHandler.cs | 133 +++++++++++++++++++++ .../View/BoardMemberManageApartment.xaml | 38 ++++-- .../View/BoardMemberManageApartment.xaml.cs | 5 + .../ApartmentManager/View/BoardMembersPage.xaml | 24 ++-- .../ApartmentManager/View/BoardMembersPage.xaml.cs | 10 +- .../ApartmentManager/View/InfoForBoardMembers.xaml | 2 +- .../HousingWebAPI/ApartmentResident.cs | 37 ++++++ .../Controllers/ApartmentResidentsController.cs | 133 +++++++++++++++++++++ .../HousingWebAPI/Models/ApartmentResident.cs | 37 ++++++ .../HousingWebAPI/Models/ListApartmentResidents.cs | 42 +++++++ .../Models/database_firewall_rules.cs | 38 ++++++ ApartmentManager/HousingWebAPI/ViewContext.cs | 41 +++++++ .../HousingWebAPI/database_firewall_rules.cs | 38 ++++++ .../HousingWebApi/HousingWebAPI.csproj | 7 ++ ApartmentManager/HousingWebApi/Web.config | 7 +- 16 files changed, 561 insertions(+), 32 deletions(-) create mode 100644 ApartmentManager/ApartmentManager/Handler/BoardResidentsHandler.cs create mode 100644 ApartmentManager/HousingWebAPI/ApartmentResident.cs create mode 100644 ApartmentManager/HousingWebAPI/Controllers/ApartmentResidentsController.cs create mode 100644 ApartmentManager/HousingWebAPI/Models/ApartmentResident.cs create mode 100644 ApartmentManager/HousingWebAPI/Models/ListApartmentResidents.cs create mode 100644 ApartmentManager/HousingWebAPI/Models/database_firewall_rules.cs create mode 100644 ApartmentManager/HousingWebAPI/ViewContext.cs create mode 100644 ApartmentManager/HousingWebAPI/database_firewall_rules.cs diff --git a/ApartmentManager/ApartmentManager/ApartmentManager.csproj b/ApartmentManager/ApartmentManager/ApartmentManager.csproj index 0bf5485..de07d8e 100644 --- a/ApartmentManager/ApartmentManager/ApartmentManager.csproj +++ b/ApartmentManager/ApartmentManager/ApartmentManager.csproj @@ -101,6 +101,7 @@ + diff --git a/ApartmentManager/ApartmentManager/Handler/BoardResidentsHandler.cs b/ApartmentManager/ApartmentManager/Handler/BoardResidentsHandler.cs new file mode 100644 index 0000000..d33d3a3 --- /dev/null +++ b/ApartmentManager/ApartmentManager/Handler/BoardResidentsHandler.cs @@ -0,0 +1,133 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Windows.UI.Popups; +using ApartmentManager.Model; +using ApartmentManager.Persistency; +using ApartmentManager.ViewModel; +using Newtonsoft.Json; + +namespace ApartmentManager.Handler +{ + class BoardResidentsHandler + { + public ApartmentsViewModel ApartmentsViewModel { get; set; } + + public BoardResidentsHandler(ApartmentsViewModel apartmentsViewModel) + { + ApartmentsViewModel = apartmentsViewModel; + } + public void GetApartmentsResidents() + { + Resident resident = new Resident(); + resident.ApartmentNr = ApartmentsViewModel.ApartmentsNumber; + + var residentsFromDatabase = ApiClient.GetData("api/ApartmentResidents/" + resident.ApartmentNr); + IEnumerable residentlist = JsonConvert.DeserializeObject>(residentsFromDatabase); + + ApartmentsViewModel.ApartmentsCatalogSingleton.Residents.Clear(); + ApartmentsViewModel.NewResident = new Resident(); + foreach (var resident2 in residentlist) + { + ApartmentsViewModel.ApartmentsCatalogSingleton.Residents.Add(resident2); + } + + } + + public void CreateResident() + { + try + { + Resident resident = new Resident(); + + resident.ApartmentNr = ApartmentsViewModel.ApartmentsNumber; + resident.FirstName = ApartmentsViewModel.NewResident.FirstName; + resident.LastName = ApartmentsViewModel.NewResident.LastName; + resident.BirthDate = ApartmentsViewModel.NewResident.BirthDate; + resident.Email = ApartmentsViewModel.NewResident.Email; + resident.Picture = ApartmentsViewModel.NewResident.Picture; + resident.Phone = ApartmentsViewModel.NewResident.Phone; + + ApiClient.PostData("api/residents/", resident); + + var residentsFromDatabase = ApiClient.GetData("api/ApartmentResidents/" + resident.ApartmentNr); + IEnumerable residentlist = JsonConvert.DeserializeObject>(residentsFromDatabase); + + ApartmentsViewModel.ApartmentsCatalogSingleton.Residents.Clear(); + ApartmentsViewModel.NewResident = new Resident(); + foreach (var resident2 in residentlist) + { + ApartmentsViewModel.ApartmentsCatalogSingleton.Residents.Add(resident2); + } + } + catch (Exception e) + { + new MessageDialog(e.Message).ShowAsync(); + } + } + + public void DeleteResident() + { + try + { + Resident resident = new Resident(); + resident.ResidentNr = ApartmentsViewModel.NewResident.ResidentNr; + resident.ApartmentNr = ApartmentsViewModel.ApartmentsNumber; + resident.FirstName = ApartmentsViewModel.NewResident.FirstName; + resident.LastName = ApartmentsViewModel.NewResident.LastName; + resident.BirthDate = ApartmentsViewModel.NewResident.BirthDate; + resident.Email = ApartmentsViewModel.NewResident.Email; + resident.Picture = ApartmentsViewModel.NewResident.Picture; + resident.Phone = ApartmentsViewModel.NewResident.Phone; + + ApiClient.DeleteData("api/residents/" + resident.ResidentNr); + + var residentsFromDatabase = ApiClient.GetData("api/ApartmentResidents/" + resident.ApartmentNr); + IEnumerable residentlist = JsonConvert.DeserializeObject>(residentsFromDatabase); + + ApartmentsViewModel.ApartmentsCatalogSingleton.Residents.Clear(); + ApartmentsViewModel.NewResident = new Resident(); + foreach (var resident2 in residentlist) + { + ApartmentsViewModel.ApartmentsCatalogSingleton.Residents.Add(resident2); + } + } + catch (Exception e) + { + new MessageDialog(e.Message).ShowAsync(); + } + } + public void UpdateResident() + { + try + { + Resident resident = new Resident(); + resident.ResidentNr = ApartmentsViewModel.NewResident.ResidentNr; + resident.ApartmentNr = ApartmentsViewModel.ApartmentsNumber; + resident.FirstName = ApartmentsViewModel.NewResident.FirstName; + resident.LastName = ApartmentsViewModel.NewResident.LastName; + resident.BirthDate = ApartmentsViewModel.NewResident.BirthDate; + resident.Email = ApartmentsViewModel.NewResident.Email; + resident.Picture = ApartmentsViewModel.NewResident.Picture; + resident.Phone = ApartmentsViewModel.NewResident.Phone; + + ApiClient.PutData("api/residents/" + resident.ResidentNr, resident); + var residentsFromDatabase = ApiClient.GetData("api/ApartmentResidents/" + resident.ApartmentNr); + IEnumerable residentlist = JsonConvert.DeserializeObject>(residentsFromDatabase); + + ApartmentsViewModel.ApartmentsCatalogSingleton.Residents.Clear(); + ApartmentsViewModel.NewResident = new Resident(); + foreach (var resident2 in residentlist) + { + ApartmentsViewModel.ApartmentsCatalogSingleton.Residents.Add(resident2); + } + } + catch (Exception e) + { + new MessageDialog(e.Message).ShowAsync(); + } + } + } +} \ No newline at end of file diff --git a/ApartmentManager/ApartmentManager/View/BoardMemberManageApartment.xaml b/ApartmentManager/ApartmentManager/View/BoardMemberManageApartment.xaml index 5deab23..ce8577b 100644 --- a/ApartmentManager/ApartmentManager/View/BoardMemberManageApartment.xaml +++ b/ApartmentManager/ApartmentManager/View/BoardMemberManageApartment.xaml @@ -16,16 +16,36 @@ - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/ApartmentManager/ApartmentManager/View/BoardMemberManageApartment.xaml.cs b/ApartmentManager/ApartmentManager/View/BoardMemberManageApartment.xaml.cs index c291b8b..fe460a4 100644 --- a/ApartmentManager/ApartmentManager/View/BoardMemberManageApartment.xaml.cs +++ b/ApartmentManager/ApartmentManager/View/BoardMemberManageApartment.xaml.cs @@ -26,5 +26,10 @@ namespace ApartmentManager.View { this.InitializeComponent(); } + + private void ButtonBase_OnClick(object sender, RoutedEventArgs e) + { + this.Frame.Navigate(typeof(InfoForBoardMembers)); + } } } diff --git a/ApartmentManager/ApartmentManager/View/BoardMembersPage.xaml b/ApartmentManager/ApartmentManager/View/BoardMembersPage.xaml index b606754..8c72de5 100644 --- a/ApartmentManager/ApartmentManager/View/BoardMembersPage.xaml +++ b/ApartmentManager/ApartmentManager/View/BoardMembersPage.xaml @@ -13,23 +13,17 @@ - - - - - - - - diff --git a/ApartmentManager/ApartmentManager/View/BoardMembersPage.xaml.cs b/ApartmentManager/ApartmentManager/View/BoardMembersPage.xaml.cs index b7eb548..dbf2f45 100644 --- a/ApartmentManager/ApartmentManager/View/BoardMembersPage.xaml.cs +++ b/ApartmentManager/ApartmentManager/View/BoardMembersPage.xaml.cs @@ -27,19 +27,19 @@ namespace ApartmentManager.View this.InitializeComponent(); } - private void Defect(object sender, RoutedEventArgs e) + private void Defects(object sender, RoutedEventArgs e) { Frame.Navigate(typeof(BoardMembersDefectsPage)); } - private void Apartment(object sender, RoutedEventArgs e) + private void Apartments(object sender, RoutedEventArgs e) { - this.Frame.Navigate(typeof(InfoForBoardMembers)); + this.Frame.Navigate(typeof(BoardMemberManageApartment)); } - private void ApartmentManage(object sender, RoutedEventArgs e) + private void Residents(object sender, RoutedEventArgs e) { - this.Frame.Navigate(typeof(BoardMemberManageApartment)); + this.Frame.Navigate(typeof(ApartmentResidentsPage)); } } } diff --git a/ApartmentManager/ApartmentManager/View/InfoForBoardMembers.xaml b/ApartmentManager/ApartmentManager/View/InfoForBoardMembers.xaml index 6ff3559..69d5930 100644 --- a/ApartmentManager/ApartmentManager/View/InfoForBoardMembers.xaml +++ b/ApartmentManager/ApartmentManager/View/InfoForBoardMembers.xaml @@ -17,7 +17,7 @@ - + diff --git a/ApartmentManager/HousingWebAPI/ApartmentResident.cs b/ApartmentManager/HousingWebAPI/ApartmentResident.cs new file mode 100644 index 0000000..092c95f --- /dev/null +++ b/ApartmentManager/HousingWebAPI/ApartmentResident.cs @@ -0,0 +1,37 @@ +namespace HousingWebApi +{ + using System; + using System.Collections.Generic; + using System.ComponentModel.DataAnnotations; + using System.ComponentModel.DataAnnotations.Schema; + using System.Data.Entity.Spatial; + + public partial class ApartmentResident + { + [Key] + [Column(Order = 0)] + [DatabaseGenerated(DatabaseGeneratedOption.None)] + public int ApartmentNumber { get; set; } + + [Key] + [Column(Order = 1)] + [StringLength(20)] + public string FirstName { get; set; } + + [Key] + [Column(Order = 2)] + [StringLength(20)] + public string LastName { get; set; } + + [Column(TypeName = "date")] + public DateTime? BirthDate { get; set; } + + public int? PhoneNo { get; set; } + + [StringLength(30)] + public string Email { get; set; } + + [Column(TypeName = "image")] + public byte[] Picture { get; set; } + } +} diff --git a/ApartmentManager/HousingWebAPI/Controllers/ApartmentResidentsController.cs b/ApartmentManager/HousingWebAPI/Controllers/ApartmentResidentsController.cs new file mode 100644 index 0000000..4b5c82a --- /dev/null +++ b/ApartmentManager/HousingWebAPI/Controllers/ApartmentResidentsController.cs @@ -0,0 +1,133 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.Entity; +using System.Data.Entity.Infrastructure; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; +using System.Web.Http.Description; +using HousingWebApi; + +namespace HousingWebApi.Controllers +{ + public class ApartmentResidentsController : ApiController + { + private ViewContext db = new ViewContext(); + + // GET: api/ApartmentResidents + public IQueryable GetApartmentResidents() + { + return db.ApartmentResidents; + } + + // GET: api/ApartmentResidents/5 + [ResponseType(typeof(ApartmentResident))] + public IHttpActionResult GetApartmentResident(int id) + { + ApartmentResident apartmentResident = db.ApartmentResidents.Find(id); + if (apartmentResident == null) + { + return NotFound(); + } + + return Ok(apartmentResident); + } + + // PUT: api/ApartmentResidents/5 + [ResponseType(typeof(void))] + public IHttpActionResult PutApartmentResident(int id, ApartmentResident apartmentResident) + { + if (!ModelState.IsValid) + { + return BadRequest(ModelState); + } + + if (id != apartmentResident.ApartmentNumber) + { + return BadRequest(); + } + + db.Entry(apartmentResident).State = EntityState.Modified; + + try + { + db.SaveChanges(); + } + catch (DbUpdateConcurrencyException) + { + if (!ApartmentResidentExists(id)) + { + return NotFound(); + } + else + { + throw; + } + } + + return StatusCode(HttpStatusCode.NoContent); + } + + // POST: api/ApartmentResidents + [ResponseType(typeof(ApartmentResident))] + public IHttpActionResult PostApartmentResident(ApartmentResident apartmentResident) + { + if (!ModelState.IsValid) + { + return BadRequest(ModelState); + } + + db.ApartmentResidents.Add(apartmentResident); + + try + { + db.SaveChanges(); + } + catch (DbUpdateException) + { + if (ApartmentResidentExists(apartmentResident.ApartmentNumber)) + { + return Conflict(); + } + else + { + throw; + } + } + + return CreatedAtRoute("DefaultApi", new { id = apartmentResident.ApartmentNumber }, apartmentResident); + } + + // DELETE: api/ApartmentResidents/5 + [ResponseType(typeof(ApartmentResident))] + public IHttpActionResult DeleteApartmentResident(int id) + { + ApartmentResident apartmentResident = db.ApartmentResidents.Find(id); + if (apartmentResident == null) + { + return NotFound(); + } + + db.ApartmentResidents.Remove(apartmentResident); + db.SaveChanges(); + + return Ok(apartmentResident); + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + db.Dispose(); + } + base.Dispose(disposing); + } + + private bool ApartmentResidentExists(int id) + { + return db.ApartmentResidents.Count(e => e.ApartmentNumber == id) > 0; + } + } +} \ No newline at end of file diff --git a/ApartmentManager/HousingWebAPI/Models/ApartmentResident.cs b/ApartmentManager/HousingWebAPI/Models/ApartmentResident.cs new file mode 100644 index 0000000..f54e72b --- /dev/null +++ b/ApartmentManager/HousingWebAPI/Models/ApartmentResident.cs @@ -0,0 +1,37 @@ +namespace HousingWebApi.Models +{ + using System; + using System.Collections.Generic; + using System.ComponentModel.DataAnnotations; + using System.ComponentModel.DataAnnotations.Schema; + using System.Data.Entity.Spatial; + + public partial class ApartmentResident + { + [Key] + [Column(Order = 0)] + [DatabaseGenerated(DatabaseGeneratedOption.None)] + public int ApartmentNumber { get; set; } + + [Key] + [Column(Order = 1)] + [StringLength(20)] + public string FirstName { get; set; } + + [Key] + [Column(Order = 2)] + [StringLength(20)] + public string LastName { get; set; } + + [Column(TypeName = "date")] + public DateTime? BirthDate { get; set; } + + public int? PhoneNo { get; set; } + + [StringLength(30)] + public string Email { get; set; } + + [Column(TypeName = "image")] + public byte[] Picture { get; set; } + } +} diff --git a/ApartmentManager/HousingWebAPI/Models/ListApartmentResidents.cs b/ApartmentManager/HousingWebAPI/Models/ListApartmentResidents.cs new file mode 100644 index 0000000..5d5bffd --- /dev/null +++ b/ApartmentManager/HousingWebAPI/Models/ListApartmentResidents.cs @@ -0,0 +1,42 @@ +namespace HousingWebApi.Models +{ + using System; + using System.Data.Entity; + using System.ComponentModel.DataAnnotations.Schema; + using System.Linq; + + public partial class ListApartmentResidents : DbContext + { + public ListApartmentResidents() + : base("name=ListApartmentResidents") + { + base.Configuration.ProxyCreationEnabled = false; + } + + public virtual DbSet ApartmentResidents { get; set; } + public virtual DbSet database_firewall_rules { get; set; } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) + { + modelBuilder.Entity() + .Property(e => e.FirstName) + .IsUnicode(false); + + modelBuilder.Entity() + .Property(e => e.LastName) + .IsUnicode(false); + + modelBuilder.Entity() + .Property(e => e.Email) + .IsUnicode(false); + + modelBuilder.Entity() + .Property(e => e.start_ip_address) + .IsUnicode(false); + + modelBuilder.Entity() + .Property(e => e.end_ip_address) + .IsUnicode(false); + } + } +} diff --git a/ApartmentManager/HousingWebAPI/Models/database_firewall_rules.cs b/ApartmentManager/HousingWebAPI/Models/database_firewall_rules.cs new file mode 100644 index 0000000..4ea6055 --- /dev/null +++ b/ApartmentManager/HousingWebAPI/Models/database_firewall_rules.cs @@ -0,0 +1,38 @@ +namespace HousingWebApi.Models +{ + using System; + using System.Collections.Generic; + using System.ComponentModel.DataAnnotations; + using System.ComponentModel.DataAnnotations.Schema; + using System.Data.Entity.Spatial; + + [Table("sys.database_firewall_rules")] + public partial class database_firewall_rules + { + [Key] + [Column(Order = 0)] + public int id { get; set; } + + [Key] + [Column(Order = 1)] + public string name { get; set; } + + [Key] + [Column(Order = 2)] + [StringLength(45)] + public string start_ip_address { get; set; } + + [Key] + [Column(Order = 3)] + [StringLength(45)] + public string end_ip_address { get; set; } + + [Key] + [Column(Order = 4)] + public DateTime create_date { get; set; } + + [Key] + [Column(Order = 5)] + public DateTime modify_date { get; set; } + } +} diff --git a/ApartmentManager/HousingWebAPI/ViewContext.cs b/ApartmentManager/HousingWebAPI/ViewContext.cs new file mode 100644 index 0000000..9b50fc3 --- /dev/null +++ b/ApartmentManager/HousingWebAPI/ViewContext.cs @@ -0,0 +1,41 @@ +namespace HousingWebApi +{ + using System; + using System.Data.Entity; + using System.ComponentModel.DataAnnotations.Schema; + using System.Linq; + + public partial class ViewContext : DbContext + { + public ViewContext() + : base("name=ViewContext") + { + } + + public virtual DbSet ApartmentResidents { get; set; } + public virtual DbSet database_firewall_rules { get; set; } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) + { + modelBuilder.Entity() + .Property(e => e.FirstName) + .IsUnicode(false); + + modelBuilder.Entity() + .Property(e => e.LastName) + .IsUnicode(false); + + modelBuilder.Entity() + .Property(e => e.Email) + .IsUnicode(false); + + modelBuilder.Entity() + .Property(e => e.start_ip_address) + .IsUnicode(false); + + modelBuilder.Entity() + .Property(e => e.end_ip_address) + .IsUnicode(false); + } + } +} diff --git a/ApartmentManager/HousingWebAPI/database_firewall_rules.cs b/ApartmentManager/HousingWebAPI/database_firewall_rules.cs new file mode 100644 index 0000000..3b5d6a5 --- /dev/null +++ b/ApartmentManager/HousingWebAPI/database_firewall_rules.cs @@ -0,0 +1,38 @@ +namespace HousingWebApi +{ + using System; + using System.Collections.Generic; + using System.ComponentModel.DataAnnotations; + using System.ComponentModel.DataAnnotations.Schema; + using System.Data.Entity.Spatial; + + [Table("sys.database_firewall_rules")] + public partial class database_firewall_rules + { + [Key] + [Column(Order = 0)] + public int id { get; set; } + + [Key] + [Column(Order = 1)] + public string name { get; set; } + + [Key] + [Column(Order = 2)] + [StringLength(45)] + public string start_ip_address { get; set; } + + [Key] + [Column(Order = 3)] + [StringLength(45)] + public string end_ip_address { get; set; } + + [Key] + [Column(Order = 4)] + public DateTime create_date { get; set; } + + [Key] + [Column(Order = 5)] + public DateTime modify_date { get; set; } + } +} diff --git a/ApartmentManager/HousingWebApi/HousingWebAPI.csproj b/ApartmentManager/HousingWebApi/HousingWebAPI.csproj index 63d4995..da913ec 100644 --- a/ApartmentManager/HousingWebApi/HousingWebAPI.csproj +++ b/ApartmentManager/HousingWebApi/HousingWebAPI.csproj @@ -151,6 +151,9 @@ + + + @@ -191,15 +194,19 @@ + + Global.asax + + diff --git a/ApartmentManager/HousingWebApi/Web.config b/ApartmentManager/HousingWebApi/Web.config index 8ea32e7..cab739c 100644 --- a/ApartmentManager/HousingWebApi/Web.config +++ b/ApartmentManager/HousingWebApi/Web.config @@ -80,6 +80,9 @@ - - + + + + + \ No newline at end of file -- cgit v1.2.3