Переглянути джерело

Fixes made to Bids

master
George Williams 4 роки тому
джерело
коміт
7817668d93

+ 32
- 0
UnivateProperties_API/Containers/ProcessFlow/BidItemDisplay.cs Переглянути файл

@@ -28,5 +28,37 @@ namespace UnivateProperties_API.Containers.ProcessFlow
28 28
     public class BidItemNew : BidItem
29 29
     {
30 30
         public int UserId { get; set; }
31
+
32
+        public TenderWeek TenderWeek { get; set; }
33
+    }
34
+
35
+    public class TenderWeek
36
+    {
37
+        public DateTime ArrivalDate { get; set; }
38
+        public int Bedrooms { get; set; }
39
+        public DateTime DepartureDate { get; set; }
40
+        public decimal LevyAmount { get; set; }
41
+        public int MaxSleeps { get; set; }
42
+        public string Season { get; set; }
43
+        public decimal SellingPrice { get; set; }
44
+        public string UnitNumber { get; set; }
45
+        public string WeekNumber { get; set; }
46
+
47
+        public TenderResort Resort { get; set; }
48
+
49
+        public TenderRegion Region { get; set; }
50
+    }
51
+
52
+    public class TenderResort
53
+    {        
54
+        public string ResortCode { get; set; }    
55
+        public string ResortName { get; set; }
56
+    }
57
+
58
+    public class TenderRegion 
59
+    { 
60
+        public int Id { get; set; }
61
+        public string RegionCode { get; set; }
62
+        public string RegionName { get; set; }
31 63
     }
32 64
 }

+ 3
- 3
UnivateProperties_API/Containers/Timeshare/WeekDto.cs Переглянути файл

@@ -18,7 +18,7 @@ namespace UnivateProperties_API.Containers.Timeshare
18 18
             Id = id;
19 19
             List<string> split = line.Split(",").ToList();
20 20
             AgentAsRep = false;
21
-            Resort = new ResortDto(split[0].Trim(), split[0].Trim());
21
+            Resort = new ResortDto(split[0].Trim(), TenderWeeksHelper.GetResortName(split[0].Trim()));
22 22
             UnitNumber = split[1].Trim();
23 23
             WeekNumber = split[2].Trim();
24 24
             switch (split[8].Trim())
@@ -128,6 +128,6 @@ namespace UnivateProperties_API.Containers.Timeshare
128 128
         public bool ReferedByAgent { get; set; }
129 129
 
130 130
         public string Display => $"{Resort.Display}  ({ArrivalDate.ToShortDateString()} - {DepartureDate.ToShortDateString()})";
131
-        public string WeekUni => $"{Resort.ResortCode} - {WeekNumber} - {UnitNumber}";
132
-    }
131
+        public string WeekUni => $"{Resort.ResortCode}-{UnitNumber}-{WeekNumber}";
132
+    }    
133 133
 }

+ 7
- 1
UnivateProperties_API/Controllers/ProcessFlow/BidController.cs Переглянути файл

@@ -28,7 +28,7 @@ namespace UnivateProperties_API.Controllers.ProcessFlow
28 28
         [HttpGet("{id}")]
29 29
         public IActionResult Get(int id)
30 30
         {
31
-            var item = _Repo.Get(x => x.Id == id);
31
+            var item = _Repo.GetDetailed(x => x.Id == id);
32 32
             return new OkObjectResult(item);
33 33
         }
34 34
 
@@ -46,6 +46,12 @@ namespace UnivateProperties_API.Controllers.ProcessFlow
46 46
             return new OkObjectResult(item);
47 47
         }
48 48
 
49
+        [HttpGet("GetNewBidTemplate")]
50
+        public IActionResult GetNewBidTemplate()
51
+        {
52
+            return new OkObjectResult(_Repo.NewBidTemplate());
53
+        }
54
+
49 55
         [HttpPost]
50 56
         public IActionResult Post([FromBody] BidItemNew item)
51 57
         {

+ 40
- 0
UnivateProperties_API/Helpers/TenderWeeksHelper.cs Переглянути файл

@@ -0,0 +1,40 @@
1
+using Newtonsoft.Json;
2
+using RestSharp;
3
+using System.Collections.Generic;
4
+
5
+namespace UnivateProperties_API.Helpers
6
+{
7
+    public static class TenderWeeksHelper
8
+    {
9
+        public static List<UniPointResorts> UniResorts = new List<UniPointResorts>();
10
+
11
+        public static string GetResortName(string Code)
12
+        {
13
+            if (UniResorts.Count == 0)
14
+            {
15
+                var client = new RestClient("https://www.tradeunipoint.com/unibackend/seam/resource/rest/products/resorts/list/")
16
+                {
17
+                    Timeout = -1
18
+                };
19
+                var request = new RestRequest(Method.GET);
20
+                IRestResponse response = client.Execute(request);
21
+                UniResorts = JsonConvert.DeserializeObject<List<UniPointResorts>>(response.Content);
22
+            }
23
+
24
+            var resort = UniResorts.Find(x => x.ResortCode == Code);
25
+            if (resort != null)
26
+                return resort.ResortName;
27
+            else
28
+                return Code;
29
+        }
30
+    }
31
+
32
+    public class UniPointResorts
33
+    {
34
+        public string ResortName { get; set; }
35
+        public string ResortCode { get; set; }
36
+        public string Town { get; set; }
37
+        public string City { get; set; }
38
+        public int Id { get; set; }
39
+    }
40
+}

+ 56
- 4
UnivateProperties_API/Repository/ProccessFlow/BidRepository.cs Переглянути файл

@@ -34,6 +34,12 @@ namespace UnivateProperties_API.Repository.ProccessFlow
34 34
         public BidItem GetDetailed(Func<BidItem, bool> first)
35 35
         {
36 36
             var item = _dbContext.BidItems.FirstOrDefault(first);
37
+
38
+            if (item == null)
39
+            {
40
+                item = new BidItem();
41
+            }
42
+
37 43
             return item;
38 44
         }
39 45
 
@@ -185,8 +191,49 @@ namespace UnivateProperties_API.Repository.ProccessFlow
185 191
         }
186 192
 
187 193
         public void InsertNew(BidItemNew item)
188
-        {            
194
+        {
195
+            var status = _dbContext.Status.Where(x => x.Code == "E1").FirstOrDefault();
189 196
             var week = _dbContext.Weeks.Include("Owner").Where(x => x.Id == item.TimeshareWeekId).FirstOrDefault();
197
+
198
+            if (item.TenderWeek != null)
199
+            {
200
+                //owner is set to UniVate2018 user - will need to check who the owner of a tender week will be. 
201
+                var owner = _dbContext.Individuals.Where(o => o.UserId == 14).FirstOrDefault();
202
+                var region = _dbContext.Provinces.Where(p => p.Id == item.TenderWeek.Region.Id).FirstOrDefault();
203
+
204
+                week = new Model.Timeshare.TimeshareWeek();
205
+                week.Owner = owner;
206
+                week.OwnerId = owner.Id;
207
+                week.ResortCode = item.TenderWeek.Resort.ResortCode;
208
+                week.ResortName = item.TenderWeek.Resort.ResortName;
209
+                week.Region = region;
210
+                week.RegionId = region.Id;
211
+                week.Module = item.TenderWeek.WeekNumber;
212
+                week.Season = item.TenderWeek.Season;
213
+                week.Bedrooms = item.TenderWeek.Bedrooms;
214
+                week.MaxSleep = item.TenderWeek.MaxSleeps;
215
+                week.UnitNumber = item.TenderWeek.UnitNumber;
216
+                week.WeekNumber = item.TenderWeek.WeekNumber;
217
+                week.LevyAmount = (double)item.TenderWeek.LevyAmount;
218
+                week.CurrentYearBanked = false;
219
+                week.BankedWith = "";
220
+                week.LeviesPaidInFull = false;
221
+                week.WeekPlacedForRental = false;
222
+                week.OriginalPurchasePrice = (double)item.TenderWeek.SellingPrice;
223
+                week.OriginalPurchaseDate = DateTime.Now;
224
+                week.ArrivalDate = item.TenderWeek.ArrivalDate;
225
+                week.DepartureDate = item.TenderWeek.DepartureDate;
226
+                week.SellPrice = (double)item.TenderWeek.SellingPrice;
227
+                week.AgentCommision = 0;                
228
+                week.Status = status;
229
+                week.StatusId = status.Id;
230
+
231
+                _dbContext.Weeks.Add(week);
232
+                Save();
233
+
234
+                item.TimeshareWeek = week;
235
+            }
236
+
190 237
             var property = _dbContext.Properties.Include("Owner").Where(x => x.Id == item.PropertyId).FirstOrDefault();
191 238
             BidItem bid = new BidItem();            
192 239
 
@@ -196,7 +243,7 @@ namespace UnivateProperties_API.Repository.ProccessFlow
196 243
                     bid[prop] = item[prop];
197 244
             }            
198 245
 
199
-            var status = _dbContext.Status.Where(x => x.Code == "E1").FirstOrDefault();
246
+           
200 247
             if (status != null)            
201 248
                 bid.StatusId = status.Id;
202 249
 
@@ -273,7 +320,7 @@ namespace UnivateProperties_API.Repository.ProccessFlow
273 320
                 Save();
274 321
             }
275 322
             item.Id = bid.Id;
276
-        }
323
+        }     
277 324
 
278 325
         public void Insert(IEnumerable<BidItem> items)
279 326
         {
@@ -447,6 +494,11 @@ namespace UnivateProperties_API.Repository.ProccessFlow
447 494
             bid.Date = item.Created;
448 495
 
449 496
             return bid;
450
-        }        
497
+        }
498
+
499
+        public BidItemNew NewBidTemplate()
500
+        {
501
+            return new BidItemNew();
502
+        }
451 503
     }
452 504
 }

+ 1
- 0
UnivateProperties_API/Repository/ProccessFlow/IBidRepository.cs Переглянути файл

@@ -14,6 +14,7 @@ namespace UnivateProperties_API.Repository.ProccessFlow
14 14
         List<BidItemDisplay> GetMyBid(Func<BidItem, bool> where);
15 15
         BidItemDisplay AcceptBid(int id);
16 16
         BidItemDisplay DecineBid(BitItemDecline item);
17
+        BidItemNew NewBidTemplate();
17 18
         void InsertNew(BidItemNew item);
18 19
         BidItemDisplay GetDispaly(int id);
19 20
     }

+ 5
- 1
UnivateProperties_API/Repository/Timeshare/WeekRepository.cs Переглянути файл

@@ -64,9 +64,13 @@ namespace UnivateProperties_API.Repository.Timeshare
64 64
             {
65 65
                 list.Add(new WeekDto(item));
66 66
             }
67
+
68
+            var listIds = list.Select(x => x.WeekUni).ToList();
69
+
67 70
             foreach (var  item in GetTenderWeeks())
68 71
             {
69
-                list.Add(item);
72
+                if (!listIds.Contains(item.WeekUni))
73
+                    list.Add(item);
70 74
             }
71 75
             return list;
72 76
         }

+ 1
- 1
UnivateProperties_API/appsettings.json Переглянути файл

@@ -9,7 +9,7 @@
9 9
   },
10 10
   "AllowedHosts": "*",
11 11
   "ConnectionStrings": {
12
-    "DefaultConnection": "Data Source=192.168.0.219;Initial Catalog=UniVateDemo;Persist Security Info=True;User Id=Provision;Password=What123!;Pooling=false;",
12
+    "DefaultConnection": "Data Source=localhost;Initial Catalog=UniVateDemo;Persist Security Info=True;User Id=Provision;Password=What123!;Pooling=false;",
13 13
     "TenderConnection": "http://www.unipoint-consoft.co.za/nph-srep.exe?cluvavail_test.sch&CLUB=LPA&RESORT=ALL&SUMMARY=N&HEAD=N"
14 14
   }
15 15
 }

Завантаження…
Відмінити
Зберегти