-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAjaxBookGenieParams.cs
117 lines (112 loc) · 4.14 KB
/
AjaxBookGenieParams.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Policy;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace JsonDeserializeTest
{
/// <summary>
/// Used in Ajax returns to hold both data (json or html)
/// Along with the request method name which is
/// used by js success to select return function
/// </summary>
public class AjaxBookGenieParams
{
public AgeCandidates AgeCandidates = new AgeCandidates();
public Book BookToDelete = new Book("0","",0,0,0,"");
public AllocatedBooks AllocatedBooks = new AllocatedBooks();
public BookGenieParams BookGenieParams = new BookGenieParams();
public object Data = ""; // legacy ???
// Removed for Serialize test
//public ProductFilterParams ProductFilterParams = null;
public string Request = "";
public AjaxBookGenieParams() { }
public AjaxBookGenieParams(string allocationState)
{
/// <param name="allocationState"></param>
/// Contains the state of AjaxCallParams PRIOR to the activity request return
var state = JsonConvert.DeserializeObject<BookGenieState>(allocationState);
this.AgeCandidates = state.AgeCandidates;
this.BookGenieParams = state.BookGenieParams;
this.AllocatedBooks = state.AllocatedBooks;
//this.ProductFilterParams = state.ProductFilterParams;
this.Request = state.Request;
}
public string GetState()
{
var state = new BookGenieState(this);
var stateJson = JsonConvert.SerializeObject(state);
return stateJson;
}
public override string ToString()
{
return JsonConvert.SerializeObject(this);
}
}
internal class BookGenieState
{
public BookGenieState(AjaxBookGenieParams ajaxBookGenieParams)
{
AgeCandidates = ajaxBookGenieParams.AgeCandidates;
BookGenieParams = ajaxBookGenieParams.BookGenieParams;
AllocatedBooks = ajaxBookGenieParams.AllocatedBooks;
//ProductFilterParams = ajaxBookGenieParams.ProductFilterParams;
Request = ajaxBookGenieParams.Request;
}
public AgeCandidates AgeCandidates = null;
public BookGenieParams BookGenieParams = null;
public AllocatedBooks AllocatedBooks = null;
//public ProductFilterParams ProductFilterParams = null;
public string Request = "";
}
public class BookGenieParams
{
public BookGenieParams()
{
AllocatedQuantity = 0;
AllocatedSubTotal = 0;
AllocatedTitles = 0;
AllocationBudget = 200;
BooksPerTitle = 3;
CustomerGuid = "";
CustomerId = 0;
DefaultBooksPerTitle = 5;
MinimumBudget = 200;
ReDisplayBreak = 10;
SelectedCategories = new List<int>();
UserBooksPerTitle = 0;
}
public int AllocatedQuantity;
public decimal AllocatedSubTotal;
public int AllocatedTitles;
public int AllocationBudget;
public int BooksPerTitle;
public string CustomerGuid;
public int CustomerId;
public int DefaultBooksPerTitle;
public int MinimumBudget;
public decimal MoveToCartSubTotal;
public int MoveToCartCount;
public int ReDisplayBreak;
public List<int> SelectedCategories; // These include selected ages
public int UserBooksPerTitle;
private List<int> GetAllAgeCategories()
{
//var ageParent = DataAccessStatic.GetCategoryIdForAges();
//var ages = DataAccessStatic.GetChildCategoryIds(ageParent);
List<int> ageCategories = new List<int>();
//ageCategories.Add(ageParent);
//foreach(int ageId in ages)
//{
// ageCategories.Add(ageId);
//}
return ageCategories;
}
public override string ToString()
{
return JsonConvert.SerializeObject(this);
}
}
}