Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- "sameLanguages":true,
- "sameDeadlines":true,
- "sameDeliverables":false,
- "quotations":[
- {
- "name":"zasd",
- "deliverable":"538184e1-9a62-4ce9-baa7-ed746f267a9a",
- "subtitleAssignments":{
- "languageCombinations":[
- {
- "from":"d177b276-8f10-472f-84c6-f2ef59052a09",
- "to":"d177b276-8f10-472f-84c6-f2ef59052a09",
- "startDate":"19-09-2017",
- "endDate":"19-09-2017"
- }
- ],
- "amount":12
- },
- "translationAssignments":{
- "languageCombinations":[
- ]
- }
- }
- ]
- }
- [HttpPost]
- public IActionResult Add([FromBody] SubmitQuotationsModel model)
- {
- //Do things...
- return View();
- }
- public class SubmitQuotationsModel
- {
- public bool SameLanguages { get; set; }
- public bool SameDeadlines { get; set; }
- public bool SameDeliverables { get; set; }
- public List<SubmitQuotationModel> Quotations { get; set; } = new List<SubmitQuotationModel>();
- }
- public class SubmitQuotationModel
- {
- public string Name { get; set; }
- public string Deliverable { get; set; }
- public List<AssignmentModel> SubtitleAssignments { get; set; }
- public List<AssignmentModel> TranslationAssignments { get; set; }
- }
- public class AssignmentModel
- {
- public List<LanguageCombinationModel> LanguageCombinations { get; set; }
- public int Amount { get; set; }
- }
- public class LanguageCombinationModel
- {
- public string From { get; set; }
- public string To { get; set; }
- public DateTimeOffset StartDate { get; set; }
- public DateTimeOffset EndDate { get; set; }
- }
- fetch('/Quotation/Add', {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json'
- },
- credentials: 'include',
- body: this.toJSON()
- });
- public toJSON(): string {
- let model = {
- sameLanguages: this.step1().sameLanguages(),
- sameDeadlines: this.step1().sameDeadlines(),
- sameDeliverables: this.step1().sameDeliverables(),
- quotations: this.step2().quotations().filter((q) => q.isFilledIn()).map((q) => {
- return {
- name: q.name(),
- deliverable: q.selectedDeliverable().id,
- subtitleAssignments: this.getAssignmentModel(q.subtitleAssignmentGroup()),
- translationAssignments: this.getAssignmentModel(q.translationAssignmentGroup())
- }
- })
- };
- return ko.toJSON(model);
- }
- private getAssignmentModel(model: AssignmentGroupModel) {
- return {
- languageCombinations: model.assignments().map((a) => {
- return {
- from: a.fromLanguage().value,
- to: a.toLanguage().value,
- startDate: a.startDate().format('DD-MM-YYYY'),
- endDate: a.endDate().format('DD-MM-YYYY')
- }
- }),
- amount: model.amount()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement