public ActionResult ImportStep3()
        {
            //Display Results of Import
            PolicyHotelCapRateImportStep3VM cdrPostImportResult = new PolicyHotelCapRateImportStep3VM();

            cdrPostImportResult = (PolicyHotelCapRateImportStep3VM)TempData["CdrPostImportResult"];

            PolicyGroup policyGroup = new PolicyGroup();

            policyGroup = policyGroupRepository.GetGroup(cdrPostImportResult.PolicyGroupId);
            cdrPostImportResult.PolicyGroup = policyGroup;

            return(View(cdrPostImportResult));
        }
        public ActionResult ImportStep2(PolicyHotelCapRateImportStep1VM preImportCheckResultVM)
        {
            if (preImportCheckResultVM.ImportStep2VM.IsValidData == false)
            {
                //Check JSON for valid messages
                if (preImportCheckResultVM.ImportStep2VM.ReturnMessages[0] != null)
                {
                    List <string> returnMessages     = new List <string>();
                    List <string> returnMessagesJSON = Newtonsoft.Json.JsonConvert.DeserializeObject <List <string> >(preImportCheckResultVM.ImportStep2VM.ReturnMessages[0]);

                    foreach (string message in returnMessagesJSON)
                    {
                        if (message.StartsWith("Row"))
                        {
                            returnMessages.Add(message);
                        }
                    }

                    preImportCheckResultVM.ImportStep2VM.ReturnMessages = returnMessages;
                }

                TempData["ErrorMessages"] = preImportCheckResultVM;
                return(RedirectToAction("ExportErrors"));
            }

            //PreImport Check Results (check has passed)
            PolicyHotelCapRateImportStep2VM preImportCheckResult = new PolicyHotelCapRateImportStep2VM();

            preImportCheckResult = preImportCheckResultVM.ImportStep2VM;

            //Do the Import, return results
            PolicyHotelCapRateImportStep3VM cdrPostImportResult = new PolicyHotelCapRateImportStep3VM();

            cdrPostImportResult = policyHotelCapRateGroupItemRepository.Import(
                preImportCheckResult.FileBytes,
                preImportCheckResultVM.PolicyGroupId
                );

            cdrPostImportResult.PolicyGroupId = preImportCheckResultVM.PolicyGroupId;
            TempData["CdrPostImportResult"]   = cdrPostImportResult;

            //Pass Results to Next Page
            return(RedirectToAction("ImportStep3"));
        }
Exemplo n.º 3
0
        public PolicyHotelCapRateImportStep3VM Import(byte[] FileBytes, int policyGroupId)
        {
            System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
            string fileToText            = fileToText = enc.GetString(FileBytes);

            PolicyHotelCapRateImportStep3VM cdrPostImportResult = new PolicyHotelCapRateImportStep3VM();
            List <string> returnMessages = new List <string>();

            // Create the xml document container, this will be used to store the data after the checks
            XmlDocument    doc = new XmlDocument();
            XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", null, null);

            doc.AppendChild(dec);
            XmlElement root = doc.CreateElement("PHCRIGs");

            doc.AppendChild(root);

            int i = 0;

            //Split the CSV into lines
            string[] lines = fileToText.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

            //loop through CSV lines
            foreach (string line in lines)
            {
                i++;

                if (i > 1) //ignore first line with titles
                {
                    string[] cells = line.Split(',');

                    //extract the data items from the file
                    string locationCode        = cells[0];      //Required
                    string currencyCode        = cells[1];      //Required
                    string capRate             = cells[2];      //Required
                    string enabledFlag         = cells[3] ?? "";
                    string enabledDate         = cells[4] ?? "";
                    string expiryDate          = cells[5] ?? "";
                    string travelDateValidFrom = cells[6] ?? "";
                    string travelDateValidTo   = cells[7] ?? "";
                    string taxInclusiveFlag    = cells[8]; //Required

                    //Build the XML Element for items

                    XmlElement xmlCDRItem = doc.CreateElement("PHCRIG");

                    XmlElement xmlLocationCode = doc.CreateElement("LocationCode");
                    xmlLocationCode.InnerText = locationCode;
                    xmlCDRItem.AppendChild(xmlLocationCode);

                    XmlElement xmlCurrencyCode = doc.CreateElement("CurrencyCode");
                    xmlCurrencyCode.InnerText = currencyCode;
                    xmlCDRItem.AppendChild(xmlCurrencyCode);

                    XmlElement xmlCapRate = doc.CreateElement("CapRate");
                    xmlCapRate.InnerText = capRate;
                    xmlCDRItem.AppendChild(xmlCapRate);

                    XmlElement xmlEnabledDate = doc.CreateElement("EnabledDate");
                    xmlEnabledDate.InnerText = enabledDate;
                    xmlCDRItem.AppendChild(xmlEnabledDate);

                    XmlElement xmlExpiryDate = doc.CreateElement("ExpiryDate");
                    xmlExpiryDate.InnerText = expiryDate;
                    xmlCDRItem.AppendChild(xmlExpiryDate);

                    XmlElement xmlTravelDateValidFrom = doc.CreateElement("TravelDateValidFrom");
                    xmlTravelDateValidFrom.InnerText = travelDateValidFrom;
                    xmlCDRItem.AppendChild(xmlTravelDateValidFrom);

                    XmlElement xmlTravelDateValidTo = doc.CreateElement("TravelDateValidTo");
                    xmlTravelDateValidTo.InnerText = travelDateValidTo;
                    xmlCDRItem.AppendChild(xmlTravelDateValidTo);

                    string     locationId        = dbHierarchyDC.fnDesktopDataAdmin_GetPolicyLocationIdBasedOnCode_v1(locationCode).ToString();
                    XmlElement xmlLocationCodeId = doc.CreateElement("LocationCodeId");
                    xmlLocationCodeId.InnerText = locationId;
                    xmlCDRItem.AppendChild(xmlLocationCodeId);

                    if (taxInclusiveFlag == "TRUE")
                    {
                        taxInclusiveFlag = "1";
                    }
                    if (taxInclusiveFlag == "FALSE")
                    {
                        taxInclusiveFlag = "0";
                    }

                    XmlElement xmlTaxInclusiveFlag = doc.CreateElement("TaxInclusiveFlag");
                    xmlTaxInclusiveFlag.InnerText = taxInclusiveFlag;
                    xmlCDRItem.AppendChild(xmlTaxInclusiveFlag);

                    if (enabledFlag == "TRUE" || string.IsNullOrEmpty(enabledFlag))
                    {
                        enabledFlag = "1";
                    }
                    if (enabledFlag == "FALSE")
                    {
                        enabledFlag = "0";
                    }

                    XmlElement xmlEnabledFlag = doc.CreateElement("EnabledFlag");
                    xmlEnabledFlag.InnerText = enabledFlag;
                    xmlCDRItem.AppendChild(xmlEnabledFlag);

                    XmlElement xmlSequenceNumber = doc.CreateElement("SequenceNumber");
                    xmlSequenceNumber.InnerText = i.ToString();
                    xmlCDRItem.AppendChild(xmlSequenceNumber);

                    //Attach the XML Element for an item to the Document
                    root.AppendChild(xmlCDRItem);
                }
            }

            //DB Check
            string adminUserGuid = HttpContext.Current.User.Identity.Name.Split(new[] { '|' })[0];

            try
            {
                var output = (from n in dbHierarchyDC.spDesktopDataAdmin_UpdatePolicyHotelCapDefinedReferences_v1(
                                  policyGroupId,
                                  System.Xml.Linq.XElement.Parse(doc.OuterXml),
                                  adminUserGuid)
                              select n).ToList();

                int deletedItemCount = 0;
                int addedItemCount   = 0;

                foreach (spDesktopDataAdmin_UpdatePolicyHotelCapDefinedReferences_v1Result message in output)
                {
                    returnMessages.Add(message.MessageText.ToString());
                }

                cdrPostImportResult.ReturnMessages   = returnMessages;
                cdrPostImportResult.AddedItemCount   = addedItemCount;
                cdrPostImportResult.DeletedItemCount = deletedItemCount;
            }
            catch (Exception ex)
            {
                returnMessages.Add("<strong class=\"error\">The import of the selected data file has failed Please try again or contact your administrator</strong>");
                cdrPostImportResult.ReturnMessages   = returnMessages;
                cdrPostImportResult.AddedItemCount   = 0;
                cdrPostImportResult.DeletedItemCount = 0;
            }

            return(cdrPostImportResult);
        }