public void StringToDateTimeOffsetConverter_ConvertConvertBackStringDateTest()
        {
            var dateConverter = new StringToDateTimeConverter();
            var testDate      = new DateTime(2020, 12, 12, 5, 50, 00);

            //Passing a DateTime to the Convert() method
            var dateConverted = (String)dateConverter.Convert(testDate, null, null, null);

            //Validates that the conversion from DateTime to String was successful
            Assert.IsNotNull(dateConverted);
            Assert.AreEqual(dateConverted.GetType(), typeof(String));
            Assert.AreEqual(dateConverted.ToString(), "December 12, 2020 5:50 AM");

            //Passing a string with a specific data format to the ConvertBack() method
            var dateContertedBack = (DateTime)dateConverter.ConvertBack("December 12, 2020 5:50 AM", null, null, null);

            //Validates that the conversion from String to DateTime was successful
            Assert.IsNotNull(dateContertedBack);
            Assert.AreEqual(dateContertedBack.GetType(), typeof(DateTime));
            Assert.AreEqual(dateContertedBack.ToString(DefaultDateFormat), testDate.ToString(DefaultDateFormat));
        }
        public void TestConverterShouldConvertNull()
        {
            var result = _converter.Convert(string.Empty);

            Assert.That(result, Is.Null);
        }
Пример #3
0
        /// <summary>
        /// Parses a CalDav response XML into a list of CalDavElements.
        /// </summary>
        /// <param name="ResponseXmlDoc">XML to parse.</param>
        /// <returns>All CalDavElements contained in the Xml.</returns>
        public static List <CalDavElement> Parse(XmlDocument ResponseXmlDoc)
        {
            List <CalDavElement> allElements = new List <CalDavElement>();

            if (ResponseXmlDoc.DocumentElement != null)
            {
                foreach (XmlNode xnode in ResponseXmlDoc.DocumentElement)
                {
                    CalDavElement myElement = new CalDavElement();
                    if (xnode.SelectSingleNode("*[local-name()='href']") != null)
                    {
                        myElement.Url = xnode.SelectSingleNode("*[local-name()='href']").InnerText;
                    }
                    if (xnode.SelectSingleNode("*[local-name()='propstat']/*[local-name()='prop']/*[local-name()='getetag']") != null)
                    {
                        myElement.ETag = xnode.SelectSingleNode("*[local-name()='propstat']/*[local-name()='prop']/*[local-name()='getetag']").InnerText;
                    }
                    if (xnode.SelectSingleNode("*[local-name()='propstat']/*[local-name()='prop']/*[local-name()='calendar-data']") != null)
                    {
                        string[] parameters = xnode.SelectSingleNode("*[local-name()='propstat']/*[local-name()='prop']/*[local-name()='calendar-data']").InnerText.Split(new char[] { '\n' });
                        foreach (var item in parameters)
                        {
                            string[] specificParameter = item.Split(new char[] { ':' }, 2);
                            if (specificParameter[0].ToUpper().StartsWith("UID") && specificParameter[1] != null)
                            {
                                myElement.Guid = specificParameter[1];
                            }
                            if (specificParameter[0].ToUpper().StartsWith("SUMMARY") && specificParameter[1] != null)
                            {
                                myElement.Summary = specificParameter[1];
                            }
                            if (specificParameter[0].ToUpper().StartsWith("DESCRIPTION") && specificParameter[1] != null)
                            {
                                myElement.Description = specificParameter[1];
                            }
                            if (specificParameter[0].ToUpper().StartsWith("LAST-MODIFIED") && specificParameter[1] != null)
                            {
                                myElement.LastModified = StringToDateTimeConverter.Convert(specificParameter[1], -CaldavConnector.LASTMODIFIED_DATE_OFFSET);
                            }
                            if (specificParameter[0].ToUpper().StartsWith("LOCATION") && specificParameter[1] != null)
                            {
                                myElement.Location = specificParameter[1];
                            }
                            if (specificParameter[0].ToUpper().StartsWith("DTSTART") && specificParameter[1] != null)
                            {
                                if (specificParameter[1].Contains("T"))
                                {
                                    myElement.AllDayEvent = false;
                                }
                                else
                                {
                                    myElement.AllDayEvent = true;
                                }
                                myElement.Start = StringToDateTimeConverter.Convert(specificParameter[1]);
                            }
                            if (specificParameter[0].ToUpper().StartsWith("DTEND") && specificParameter[1] != null)
                            {
                                myElement.End = StringToDateTimeConverter.Convert(specificParameter[1]);
                            }
                        }
                    }
                    allElements.Add(myElement);
                }
            }
            return(allElements);
        }
Пример #4
0
        public IEnumerable <LoanInformation> Read(string file)
        {
            using (var doc = SpreadsheetDocument.Open(file, false))
            {
                var workbookPart  = doc.WorkbookPart;
                var worksheetPart = workbookPart.WorksheetParts.First();
                var reader        = OpenXmlReader.Create(worksheetPart);

                bool isFirst = true;
                while (reader.Read())
                {
                    if (reader.ElementType == typeof(Row))
                    {
                        if (reader.IsEndElement)
                        {
                            continue;
                        }
                        if (isFirst)
                        {
                            isFirst = false;
                            continue;
                        }

                        var children = reader.LoadCurrentElement().ChildElements;

                        var loan = new LoanInformation();

                        foreach (Cell child in children.Where(x => x is Cell))
                        {
                            var columnReference = Regex.Replace(child.CellReference.ToString(), @"[\d]", string.Empty);
                            var cellContent     = child.InnerText;
                            switch (columnReference)
                            {
                            case "A":
                                loan.Id = cellContent;
                                continue;

                            case "B":
                                loan.IssueDate = StringToDateTimeConverter.Convert(cellContent);
                                continue;

                            case "C":
                                loan.ClosingDate = StringToDateTimeConverter.Convert(cellContent);
                                continue;

                            case "D":
                                loan.ListingDate = StringToDateTimeConverter.Convert(cellContent);
                                continue;

                            case "E":
                                loan.Country = cellContent;
                                continue;

                            case "F":
                                loan.LoanOriginator = cellContent;
                                continue;

                            case "G":
                                loan.MintosRating = cellContent;
                                continue;

                            case "H":
                                loan.LoanType = cellContent;
                                continue;

                            case "I":
                                loan.LoanRate = Convert.ToDecimal(cellContent);
                                continue;

                            case "J":
                                loan.Term = Convert.ToUInt16(cellContent);
                                continue;

                            case "K":
                                loan.Collateral = YesNoToBooleanConverter.Convert(cellContent);
                                continue;

                            case "L":
                                loan.InitialLtv = Convert.ToDecimal(cellContent);
                                continue;

                            case "M":
                                loan.Ltv = Convert.ToDecimal(cellContent);
                                continue;

                            case "N":
                                loan.LoanStatus = cellContent;
                                continue;

                            case "O":
                                loan.BuybackReason = cellContent;
                                continue;

                            case "P":
                                loan.InitialLoanAmount = Convert.ToDecimal(cellContent);
                                continue;

                            case "Q":
                                loan.RemainingLoanAmount = Convert.ToDecimal(cellContent);
                                continue;

                            case "R":
                                loan.Currency = cellContent;
                                continue;

                            case "S":
                                loan.Buyback = YesNoToBooleanConverter.Convert(cellContent);
                                continue;

                            default:
                                throw new ArgumentOutOfRangeException(nameof(columnReference));
                            }
                        }
                        yield return(loan);
                    }
                }
            }
        }