Exemplo n.º 1
0
        /// <summary>
        /// Generates the PDF.
        /// </summary>
        /// <param name="cv">The cv.</param>
        /// <returns></returns>
        public static MemoryStream GeneratePDF(Model.SkillsPassport cv)
        {
            try
            {
                var request = (HttpWebRequest)WebRequest.Create("https://europass.cedefop.europa.eu/rest/v1/document/to/pdf");

                var data = Encoding.UTF8.GetBytes(Converter.ToXmlString(cv));
                request.Method        = "POST";
                request.ContentType   = "application/xml";
                request.ContentLength = data.Length;
                request.Headers.Add("Accept-Language", cv.locale);

                using (var stream = request.GetRequestStream())
                {
                    stream.Write(data, 0, data.Length);
                }

                using (var response = (HttpWebResponse)request.GetResponse())
                {
                    MemoryStream memStream;
                    using (Stream responseStream = response.GetResponseStream())
                    {
                        memStream = new MemoryStream();

                        byte[] buffer = new byte[1024];
                        int    byteCount;
                        do
                        {
                            byteCount = responseStream.Read(buffer, 0, buffer.Length);
                            memStream.Write(buffer, 0, byteCount);
                        } while (byteCount > 0);
                    }

                    memStream.Seek(0, SeekOrigin.Begin);
                    return(memStream);
                }
            }
            catch (WebException ex)
            {
                using (var stream = ex.Response.GetResponseStream())
                    using (var reader = new StreamReader(stream))
                    {
                        Console.WriteLine(reader.ReadToEnd());
                    }
            }
            catch (Exception ex)
            {
                // Something more serious happened
                // like for example you don't have network access
                // we cannot talk about a server exception here as
                // the server probably was never reached
            }

            return(new MemoryStream());
        }
Exemplo n.º 2
0
        /// <summary>
        /// To the json.
        /// </summary>
        /// <param name="skillsPassport">The skills passport.</param>
        /// <param name="includeBinaries">If set to <c>true</c> will serialize images and attachments.</param>
        /// <returns></returns>
        public static string ToJson(Model.SkillsPassport skillsPassport, bool includeBinaries = false)
        {
            if (includeBinaries)
            {
                return(Newtonsoft.Json.JsonConvert.SerializeObject(skillsPassport));
            }

            var toSerialize = skillsPassport.Clone();

            toSerialize.AttachmentList = new AttachmentType[0];
            toSerialize.LearnerInfo.Identification.Photo     = null;
            toSerialize.LearnerInfo.Identification.Signature = null;

            //TODO: Check if it's necessary to clean the references
            //toSerialize.LearnerInfo.AchievementList[0].Documentation[0].

            return(Newtonsoft.Json.JsonConvert.SerializeObject(toSerialize));
        }
Exemplo n.º 3
0
        /// <summary>
        /// To the XML string.
        /// </summary>
        /// <param name="cv">The cv.</param>
        /// <returns></returns>
        public static string ToXmlString(Model.SkillsPassport cv)
        {
            XmlDocument xml = new XmlDocument();

            using (XmlWriter writer = xml.CreateNavigator().AppendChild())
            {
                new XmlSerializer(cv.GetType()).Serialize(writer, cv);
            }

            var settings = new XmlWriterSettings
            {
                Encoding           = new UnicodeEncoding(false, false),
                Indent             = true,
                OmitXmlDeclaration = false
            };

            using (var stringWriter = new StringWriterWithEncoding(Encoding.UTF8))
                using (var xmlTextWriter = XmlWriter.Create(stringWriter, settings))
                {
                    xml.WriteTo(xmlTextWriter);
                    xmlTextWriter.Flush();
                    return(stringWriter.GetStringBuilder().ToString());
                }
        }