public object Convert(object value, Type targetType, object parameter, string language) { string param; param = parameter as string; var period = value as Period; bool from = false, to = false; if(period != null) { if (string.IsNullOrWhiteSpace(param)) { from = true; to = period.DatesVisibility.Equals(DatesVisibility.Both); } else if (param == nameof(Period.From)) from = true; else if (param == nameof(Period.To)) to = true; else throw new ArgumentOutOfRangeException("parameter", string.Format("Parameter must be \"{0}\" or \"{1}\" or null.", nameof(Period.From), nameof(Period.To))); StringBuilder sb = new StringBuilder(); if (from) sb.Append(period.From.Date.ToString(datesFormats[period.DatesPartsVisibility])); if (from && to) sb.Append(" - "); if (to) { if (period.TillNow == true) { var resoucesProvider = new ReswStringsProvider(); sb.Append(resoucesProvider.GetLocalizedString(Period.NowFieldName, language)); } else { sb.Append(period.To.Date.ToString(datesFormats[period.DatesPartsVisibility])); } } return sb.ToString(); } throw new ArgumentException("value", "Value must be a Period object."); }
public async Task<bool> GenerateCV(StorageFile file, User user, string languageTag) { ReswStringsProvider stringsProvider = new ReswStringsProvider(); WordDocument document = new WordDocument(); IWSection section = document.AddSection(); IWParagraph contactParagraph = section.AddParagraph(); contactParagraph.AppendText(String.Format("{0} {1}", user.FirstName, user.LastName)); contactParagraph.AppendBreak(BreakType.LineBreak); contactParagraph.AppendText(user.Address.ToString()); contactParagraph.AppendBreak(BreakType.LineBreak); contactParagraph.AppendText(user.Phone.ToString()); contactParagraph.AppendBreak(BreakType.LineBreak); contactParagraph.AppendText(user.Email.ToString()); if (!String.IsNullOrWhiteSpace(user.Fax)) { contactParagraph.AppendBreak(BreakType.LineBreak); contactParagraph.AppendText(user.Fax.ToString()); contactParagraph.AppendBreak(BreakType.LineBreak); } PeriodFormater formater = new PeriodFormater(); var eduParagraph = section.AddParagraph(); eduParagraph.ApplyStyle(BuiltinStyle.Heading1); eduParagraph.AppendText(stringsProvider.GetLocalizedString(user.Education.ResourceStringName, languageTag)); foreach (var item in user.Education.Items) { if (item.Translations.Contains(languageTag)) { var txt = item.Translations[languageTag]; eduParagraph = section.AddParagraph(); eduParagraph.ApplyStyle(BuiltinStyle.ListBullet); eduParagraph.AppendText(string.Format("{0} {1}", txt.SchoolName, formater.Convert(item.TimePeriod, typeof(string),null,languageTag))); eduParagraph = section.AddParagraph(); eduParagraph.ApplyStyle(BuiltinStyle.ListContinue2); eduParagraph.AppendText(string.Format("{0} {1}", txt.Domain, txt.Description)); } } var jobParagraph = section.AddParagraph(); jobParagraph.ApplyStyle(BuiltinStyle.Heading1); jobParagraph.AppendText(stringsProvider.GetLocalizedString(user.Jobs.ResourceStringName, languageTag)); foreach (var item in user.Jobs.Items) { if (item.Translations.Contains(languageTag)) { var txt = item.Translations[languageTag]; jobParagraph = section.AddParagraph(); jobParagraph.ApplyStyle(BuiltinStyle.ListBullet); jobParagraph.AppendText(string.Format("{0}, {1} {2}", txt.CompanyName, txt.Position, formater.Convert(item.TimePeriod, typeof(string), null, languageTag))); jobParagraph = section.AddParagraph(); jobParagraph.ApplyStyle(BuiltinStyle.ListContinue2); jobParagraph.AppendText(string.Format("{0}", txt.Responsibilities)); } } var projectParagraph = section.AddParagraph(); projectParagraph.ApplyStyle(BuiltinStyle.Heading1); projectParagraph.AppendText(stringsProvider.GetLocalizedString(user.Projects.ResourceStringName, languageTag)); foreach (var item in user.Projects.Items) { if (item.Translations.Contains(languageTag)) { var txt = item.Translations[languageTag]; projectParagraph = section.AddParagraph(); projectParagraph.ApplyStyle(BuiltinStyle.ListBullet); projectParagraph.AppendText(string.Format("{0} {1}", txt.Name, formater.Convert(item.TimePeriod, typeof(string), null, languageTag))); projectParagraph = section.AddParagraph(); projectParagraph.ApplyStyle(BuiltinStyle.ListContinue2); projectParagraph.AppendText(string.Format("{0}", txt.Description)); } } return await document.SaveAsync(file, Syncfusion.DocIO.FormatType.Docx); }