public async Task <OperationResult> CreateCaseTemplate(int id) { try { Core _core = new Core(); _core.StartSqlOnly( "host= localhost;Database=759_SDK;user = root;port=3306;Convert Zero Datetime = true;SslMode=none;"); Dictionary <int, string> laRoutes = new Dictionary <int, string>() { { 24, "Ã…rhus H - Aalborg" }, { 25, "Aalborg - Lindholm" } }; string checkSum; DateTime dt = DateTime.Now; var dayofWeek = dt.AddDays(1).ToString("dddd", new System.Globalization.CultureInfo("da-DK")); var dayOfWeek2 = dt.AddDays(2).ToString("dddd", new System.Globalization.CultureInfo("da-DK")); var date = dt.AddDays(1).ToString("dd"); var date2 = dt.AddDays(2).ToString("dd"); var monthOfYear = dt.ToString("MMMM", new System.Globalization.CultureInfo("da-DK")); var year = dt.ToString("yyyy"); string dateFormatted = dt.ToString("-yyyy-MM-dd-yyyy-MM-dd"); string laNumber; string laTitle; foreach (KeyValuePair <int, string> entry in laRoutes) { laNumber = entry.Key.ToString(); laTitle = "La-" + laNumber + dateFormatted; CaseTemplate existingCaseTemplate = await _dbContext.CaseTemplates.SingleOrDefaultAsync(x => x.Title == entry.Value && x.StartAt.ToString("dd-MM-yyyy") == dt.AddDays(1).ToString("dd-MM-yyyy") && x.EndAt.ToString("dd-MM-yyyy") == dt.AddDays(2).ToString("dd-MM-yyyy")); if (existingCaseTemplate == null) { string fileCheckSum = GetLa(laNumber, _core); checkSum = fileCheckSum; MainElement mainElement = _core.TemplateRead(9); mainElement.Repeated = 1; mainElement.Label = $"Banedanmark LA: {entry.Value}"; mainElement.ElementList[0].Label = mainElement.Label; mainElement.ElementList[0].Description = new CDataValue() { InderValue = $"Fra: {dayofWeek} den {date}. {monthOfYear} {year}<br>Til: {dayOfWeek2} den {date2}. {monthOfYear} {year}" }; DataElement dataElement = (DataElement)mainElement.ElementList[0]; dataElement.DataItemList[0].Label = entry.Value; ShowPdf showPdf = (ShowPdf)dataElement.DataItemList[1]; showPdf.Value = fileCheckSum; CaseTemplate newCaseTemplate = new CaseTemplate(); newCaseTemplate.Title = entry.Value; newCaseTemplate.StartAt = dt.AddDays(1); newCaseTemplate.EndAt = dt.AddDays(2); newCaseTemplate.PdfTitle = fileCheckSum; newCaseTemplate.Create(_dbContext); List <SiteName_Dto> sites = _core.Advanced_SiteItemReadAll(false); foreach (var site in sites) { int?sdkCaseId = _core.CaseCreate(mainElement, "", site.SiteUId); CaseTemplateSite caseTemplateSite = new CaseTemplateSite() { CaseTemplateId = newCaseTemplate.Id, SdkSiteId = site.SiteUId, SdkCaseId = (int)sdkCaseId }; caseTemplateSite.Create(_dbContext); } } UploadedData existingUploadedData = await _dbContext.UploadedDatas.SingleOrDefaultAsync(x => x.FileName == laTitle); if (existingUploadedData == null) { UploadedData uploadedData = new UploadedData() { FileName = laTitle, ExpirationDate = existingCaseTemplate.EndAt }; uploadedData.Create(_dbContext); } } return(new OperationResult(true, "Created successfully")); } catch (Exception e) { Trace.TraceError(e.Message); return(new OperationDataResult <CaseTemplatesModel>(false, _baneDanmarkLaLocalizationService.GetString("Failure creating LA") + $" {e.Message}")); } }
private DataItem UnpackDataItem(JObject dataItemObj) { DataItem dataItem = dataItemObj.ToObject <DataItem>(); if (dataItemObj["Type"].ToString() == "Picture") { Picture picture = new Picture(dataItem.Id, dataItem.Mandatory, dataItem.ReadOnly, dataItem.Label, dataItem.Description.ToString(), dataItem.Color, dataItem.DisplayOrder, (bool)dataItem.Dummy, int.Parse(dataItemObj["Multi"].ToString()), bool.Parse(dataItemObj["GeolocationEnabled"].ToString())); return(picture); } else if (dataItemObj["Type"].ToString() == "SaveButton") { SaveButton saveButton = new SaveButton(dataItem.Id, dataItem.Mandatory, dataItem.ReadOnly, dataItem.Label, dataItem.Description.ToString(), dataItem.Color, dataItem.DisplayOrder, (bool)dataItem.Dummy, dataItemObj["Value"].ToString()); return(saveButton); } else if (dataItemObj["Type"].ToString() == "Timer") { Timer timer = new Timer(dataItem.Id, dataItem.Mandatory, dataItem.ReadOnly, dataItem.Label, dataItem.Description.ToString(), dataItem.Color, dataItem.DisplayOrder, (bool)dataItem.Dummy, bool.Parse(dataItemObj["StopOnSave"].ToString())); return(timer); } else if (dataItemObj["Type"].ToString() == "None") { None none = new None(dataItem.Id, dataItem.Mandatory, dataItem.ReadOnly, dataItem.Label, dataItem.Description.ToString(), dataItem.Color, dataItem.DisplayOrder, (bool)dataItem.Dummy); return(none); } else if (dataItemObj["Type"].ToString() == "Signature") { Signature signature = new Signature(dataItem.Id, dataItem.Mandatory, dataItem.ReadOnly, dataItem.Label, dataItem.Description.ToString(), dataItem.Color, dataItem.DisplayOrder, (bool)dataItem.Dummy); return(signature); } else if (dataItemObj["Type"].ToString() == "Date") { Date date = new Date(dataItem.Id, dataItem.Mandatory, dataItem.ReadOnly, dataItem.Label, dataItem.Description.ToString(), dataItem.Color, dataItem.DisplayOrder, (bool)dataItem.Dummy, DateTime.ParseExact(dataItemObj["MinValue"].ToString(), "yyyy-MM-dd hh:mm:ss", null), DateTime.ParseExact(dataItemObj["MaxValue"].ToString(), "yyyy-MM-dd hh:mm:ss", null), dataItemObj["DefaultValue"].ToString()); return(date); } else if (dataItemObj["Type"].ToString() == "ShowPdf") { ShowPdf showPdf = new ShowPdf(dataItem.Id, dataItem.Mandatory, dataItem.ReadOnly, dataItem.Label, dataItem.Description.ToString(), dataItem.Color, dataItem.DisplayOrder, dataItem.Dummy, dataItemObj["Value"].ToString()); return(showPdf); } else if (dataItemObj["Type"].ToString() == "CheckBox") { CheckBox checkBox = new CheckBox(dataItem.Id, dataItem.Mandatory, dataItem.ReadOnly, dataItem.Label, dataItem.Description.ToString(), dataItem.Color, dataItem.DisplayOrder, dataItem.Dummy, bool.Parse(dataItemObj["DefaultValue"].ToString()), bool.Parse(dataItemObj["Selected"].ToString())); return(checkBox); } else if (dataItemObj["Type"].ToString() == "MultiSelect") { List <KeyValuePair> keyValuePairList = new List <KeyValuePair>(); foreach (JObject keyValuePairObj in dataItemObj["KeyValuePairList"]) { KeyValuePair keyValuePair = keyValuePairObj.ToObject <KeyValuePair>(); keyValuePairList.Add(keyValuePair); } MultiSelect multiSelect = new MultiSelect(dataItem.Id, dataItem.Mandatory, dataItem.ReadOnly, dataItem.Label, dataItem.Description.ToString(), dataItem.Color, dataItem.DisplayOrder, dataItem.Dummy, keyValuePairList); return(multiSelect); } else if (dataItemObj["Type"].ToString() == "SingleSelect") { List <KeyValuePair> keyValuePairList = new List <KeyValuePair>(); foreach (JObject keyValuePairObj in dataItemObj["KeyValuePairList"]) { KeyValuePair keyValuePair = keyValuePairObj.ToObject <KeyValuePair>(); keyValuePairList.Add(keyValuePair); } SingleSelect singleSelect = new SingleSelect(dataItem.Id, dataItem.Mandatory, dataItem.ReadOnly, dataItem.Label, dataItem.Description.ToString(), dataItem.Color, dataItem.DisplayOrder, dataItem.Dummy, keyValuePairList); return(singleSelect); } else if (dataItemObj["Type"].ToString() == "Number") { Number number = new Number(dataItem.Id, dataItem.Mandatory, dataItem.ReadOnly, dataItem.Label, dataItem.Description.ToString(), dataItem.Color, dataItem.DisplayOrder, dataItem.Dummy, dataItemObj["MinValue"].ToString(), dataItemObj["MaxValue"].ToString(), int.Parse(dataItemObj["DefaultValue"].ToString()), int.Parse(dataItemObj["DecimalCount"].ToString()), dataItemObj["UnitName"].ToString()); return(number); } else if (dataItemObj["Type"].ToString() == "Text") { Text text = new Text(dataItem.Id, dataItem.Mandatory, dataItem.ReadOnly, dataItem.Label, dataItem.Description.ToString(), dataItem.Color, dataItem.DisplayOrder, dataItem.Dummy, dataItemObj["Value"].ToString(), int.Parse(dataItemObj["MaxLength"].ToString()), bool.Parse(dataItemObj["GeolocationEnabled"].ToString()), bool.Parse(dataItemObj["GeolocationForced"].ToString()), bool.Parse(dataItemObj["GeolocationHidden"].ToString()), bool.Parse(dataItemObj["BarcodeEnabled"].ToString()), dataItemObj["BarcodeType"].ToString()); return(text); } else if (dataItemObj["Type"].ToString() == "Comment") { Comment comment = new Comment(dataItem.Id, dataItem.Mandatory, dataItem.ReadOnly, dataItem.Label, dataItem.Description.ToString(), dataItem.Color, dataItem.DisplayOrder, dataItem.Dummy, dataItemObj["Value"].ToString(), int.Parse(dataItemObj["MaxLength"].ToString()), bool.Parse(dataItemObj["SplitScreen"].ToString())); return(comment); } else if (dataItemObj["Type"].ToString() == "FieldContainer") { List <DataItem> dataItemList = new List <DataItem>(); foreach (JObject diObj in dataItemObj["DataItemList"]) { DataItem di = UnpackDataItem(diObj); dataItemList.Add(di); } FieldContainer fieldContainer = new FieldContainer(dataItem.Id, dataItem.Label, dataItem.Description, dataItem.Color, dataItem.DisplayOrder, dataItemObj["Value"].ToString(), dataItemList); return(fieldContainer); } return(dataItem); }