Esempio n. 1
0
        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.");
        }
Esempio n. 2
0
        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);
        }