|
@@ -1,4 +1,5 @@
|
1
|
|
-using Microsoft.EntityFrameworkCore;
|
|
1
|
+using Abp.Domain.Entities;
|
|
2
|
+using Microsoft.EntityFrameworkCore;
|
2
|
3
|
using System;
|
3
|
4
|
using System.Collections.Generic;
|
4
|
5
|
using System.Configuration;
|
|
@@ -21,7 +22,12 @@ using UnivateProperties_API.Repository.Users;
|
21
|
22
|
|
22
|
23
|
namespace UnivateProperties_API.Repository.Timeshare
|
23
|
24
|
{
|
24
|
|
- public class WeekRepository : IRepository<TimeshareWeek>
|
|
25
|
+ public interface IWeekRepository : IRepository<TimeshareWeek>
|
|
26
|
+ {
|
|
27
|
+ int SaveNewWeek(TimeshareWeekDto sellItem);
|
|
28
|
+ }
|
|
29
|
+
|
|
30
|
+ public class WeekRepository : IWeekRepository
|
25
|
31
|
{
|
26
|
32
|
private readonly DataContext _dbContext;
|
27
|
33
|
|
|
@@ -434,5 +440,116 @@ namespace UnivateProperties_API.Repository.Timeshare
|
434
|
440
|
Update(week);
|
435
|
441
|
}
|
436
|
442
|
}
|
|
443
|
+
|
|
444
|
+ public int SaveNewWeek(TimeshareWeekDto sellItem)
|
|
445
|
+ {
|
|
446
|
+ var owner = _dbContext.Individuals.Where(x => x.Id == sellItem.OwnerObject.Id).FirstOrDefault();
|
|
447
|
+ var address = _dbContext.Addresses.Where(a => a.Id == sellItem.OwnerObject.Address.Id).FirstOrDefault();
|
|
448
|
+ var banking = _dbContext.BankAccounts.Where(b => b.Id == sellItem.OwnerObject.BankingDetails.Id).FirstOrDefault();
|
|
449
|
+ var status = _dbContext.Status.Where(s => s.Code == "A1" && s.StatusType == StatusType.Timeshare).FirstOrDefault();
|
|
450
|
+
|
|
451
|
+ #region Address
|
|
452
|
+ if (sellItem.OwnerObject.Address.PostalCode != "")
|
|
453
|
+ {
|
|
454
|
+ if (address == null)
|
|
455
|
+ {
|
|
456
|
+ address = new Model.Misc.Address();
|
|
457
|
+ }
|
|
458
|
+ address.StreetNumber = sellItem.OwnerObject.Address.StreetNumber;
|
|
459
|
+ address.Street = sellItem.OwnerObject.Address.Street;
|
|
460
|
+ address.Suburb = sellItem.OwnerObject.Address.Suburb;
|
|
461
|
+ address.City = sellItem.OwnerObject.Address.City;
|
|
462
|
+ address.Province = sellItem.OwnerObject.Address.Province;
|
|
463
|
+ address.PostalCode = sellItem.OwnerObject.Address.PostalCode;
|
|
464
|
+
|
|
465
|
+ if (address.Id == 0)
|
|
466
|
+ {
|
|
467
|
+ _dbContext.Add(address);
|
|
468
|
+ Save();
|
|
469
|
+ }
|
|
470
|
+ else
|
|
471
|
+ {
|
|
472
|
+ _dbContext.Entry(address).State = EntityState.Modified;
|
|
473
|
+ Save();
|
|
474
|
+ }
|
|
475
|
+ }
|
|
476
|
+ #endregion
|
|
477
|
+
|
|
478
|
+ #region Banking
|
|
479
|
+ if (sellItem.OwnerObject.BankingDetails.AccountHolder != "")
|
|
480
|
+ {
|
|
481
|
+ if (banking == null)
|
|
482
|
+ {
|
|
483
|
+ banking = new Model.Banks.BankAccount();
|
|
484
|
+ }
|
|
485
|
+ banking.AccountHolder = sellItem.OwnerObject.BankingDetails.AccountHolder;
|
|
486
|
+ banking.AccountNumber = sellItem.OwnerObject.BankingDetails.AccountNumber;
|
|
487
|
+ banking.BankId = sellItem.OwnerObject.BankingDetails.Bank.Id;
|
|
488
|
+
|
|
489
|
+ if (banking.Id == 0)
|
|
490
|
+ {
|
|
491
|
+ _dbContext.Add(banking);
|
|
492
|
+ Save();
|
|
493
|
+ }
|
|
494
|
+ else
|
|
495
|
+ {
|
|
496
|
+ _dbContext.Entry(banking).State = EntityState.Modified;
|
|
497
|
+ Save();
|
|
498
|
+ }
|
|
499
|
+ }
|
|
500
|
+ #endregion
|
|
501
|
+
|
|
502
|
+ #region Owner
|
|
503
|
+ if (owner == null)
|
|
504
|
+ {
|
|
505
|
+ owner = new Model.Users.Individual();
|
|
506
|
+ }
|
|
507
|
+ if (address != null)
|
|
508
|
+ {
|
|
509
|
+ owner.AddressId = address.Id;
|
|
510
|
+ owner.Address = address;
|
|
511
|
+ }
|
|
512
|
+ if (banking != null)
|
|
513
|
+ {
|
|
514
|
+ owner.BankAccount = banking;
|
|
515
|
+ owner.BankAccountId = banking.Id;
|
|
516
|
+ }
|
|
517
|
+ owner.Name = sellItem.OwnerObject.Name;
|
|
518
|
+ owner.Surname = sellItem.OwnerObject.Surname;
|
|
519
|
+ owner.IdNumber = sellItem.OwnerObject.IdNumber;
|
|
520
|
+ owner.CompanyRegNumber = sellItem.OwnerObject.CompanyRegNumber;
|
|
521
|
+ owner.MaritalStatus = sellItem.OwnerObject.MaritalStatus;
|
|
522
|
+ owner.Email = sellItem.OwnerObject.EmailAddress;
|
|
523
|
+ owner.CellNumber = sellItem.OwnerObject.CellNumber;
|
|
524
|
+ owner.Telephone = sellItem.OwnerObject.LandlineNumber;
|
|
525
|
+
|
|
526
|
+ if (owner.Id == 0)
|
|
527
|
+ {
|
|
528
|
+ _dbContext.Add(owner);
|
|
529
|
+ Save();
|
|
530
|
+ }
|
|
531
|
+ else
|
|
532
|
+ {
|
|
533
|
+ _dbContext.Entry(owner).State = EntityState.Modified;
|
|
534
|
+ Save();
|
|
535
|
+ }
|
|
536
|
+ #endregion
|
|
537
|
+
|
|
538
|
+ var week = new TimeshareWeek();
|
|
539
|
+ foreach(string prop in week.GetAllProperties())
|
|
540
|
+ {
|
|
541
|
+ if (prop != "Item" && prop != "Display")
|
|
542
|
+ week[prop] = sellItem[prop];
|
|
543
|
+ }
|
|
544
|
+ week.Region = null;
|
|
545
|
+ week.RegionId = sellItem.Region.Id;
|
|
546
|
+ week.OwnerId = owner.Id;
|
|
547
|
+
|
|
548
|
+ week.StatusId = status.Id;
|
|
549
|
+ _dbContext.Add(week);
|
|
550
|
+ Save();
|
|
551
|
+
|
|
552
|
+ return week.Id;
|
|
553
|
+ }
|
437
|
554
|
}
|
438
|
555
|
}
|