private async Task<bool> UpdateAnimeDetails(IAnimeDetails details, string username, string password, bool canCache = true, bool isupdate = false)
        {
            try
            {
                var updateRequest = _webHttpWebRequestFactory.Create();
                updateRequest.CreateRequest(isupdate
                    ? string.Format(EditShowUrl, details.AnimeId)
                    : string.Format(AddShowUrl, details.AnimeId));
                updateRequest.UserAgent = _userAgent;
                updateRequest.SetCredentials(username, password);
                updateRequest.Method = WebRequestMethods.Http.Post;
                updateRequest.ContentType = "application/x-www-form-urlencoded";
                var requestStream = updateRequest.GetRequestStream();
                var requestWriter = new StreamWriter(requestStream);
                requestWriter.Write($"data={_jsonMapper.ConvertAnimeDetailsToXml(details)}");
                requestWriter.Close();
                var response = GetResponse(updateRequest);
                if (response.Contains("Error"))
                {
                    Log.Warning("Failed to update {AnimeId} for {username}. Response received was {Response}", details.AnimeId, username, response);
                    return false;
                }
                Log.Information("Successfully completed the update of {AnimeId} for {username}", details.AnimeId, username);
                return true;

            }
            catch (Exception ex)
            {
                Log.Error(ex, "Error occured while trying to update {AnimeId} for {username}", details.AnimeId, username);
                return false;
            }
        }
 private async Task <bool> UpdateAnimeDetails(IAnimeDetails details, string username, string password, bool canCache = true, bool isupdate = false)
 {
     try
     {
         var updateRequest = _webHttpWebRequestFactory.Create();
         updateRequest.CreateRequest(isupdate
             ? string.Format(EditShowUrl, details.AnimeId)
             : string.Format(AddShowUrl, details.AnimeId));
         updateRequest.UserAgent = _userAgent;
         updateRequest.SetCredentials(username, password);
         updateRequest.Method      = WebRequestMethods.Http.Post;
         updateRequest.ContentType = "application/x-www-form-urlencoded";
         var requestStream = updateRequest.GetRequestStream();
         var requestWriter = new StreamWriter(requestStream);
         requestWriter.Write($"data={_jsonMapper.ConvertAnimeDetailsToXml(details)}");
         requestWriter.Close();
         var response = GetResponse(updateRequest);
         if (response.Contains("Error"))
         {
             Log.Warning("Failed to update {AnimeId} for {username}. Response received was {Response}", details.AnimeId, username, response);
             return(false);
         }
         Log.Information("Successfully completed the update of {AnimeId} for {username}", details.AnimeId, username);
         return(true);
     }
     catch (Exception ex)
     {
         Log.Error(ex, "Error occured while trying to update {AnimeId} for {username}", details.AnimeId, username);
         return(false);
     }
 }
        public string ConvertAnimeDetailsToJson(IAnimeDetails animeDetails)
        {
            var jsonDetails = _factory.CreateJsonAnimeDetails();
            _mappingEngine.Map(animeDetails, jsonDetails);

            var jsonString = JsonConvert.SerializeObject(jsonDetails);
            return jsonString;
        }
        public string ConvertAnimeDetailsToJson(IAnimeDetails animeDetails)
        {
            var jsonDetails = _factory.CreateJsonAnimeDetails();

            _mappingEngine.Map(animeDetails, jsonDetails);

            var jsonString = JsonConvert.SerializeObject(jsonDetails);

            return(jsonString);
        }
 public string ConvertAnimeDetailsToXml(IAnimeDetails animeDetails)
 {
     string xmlString;
     var xmlVariant = _factory.CreateAnimeDetailsXml();
     _mappingEngine.Map(animeDetails, xmlVariant);
     var serializer = new XmlSerializer(typeof(AnimeDetailsXml));
     using (var mStream = new Utf8StringWriter())
     using (var streamWriter = XmlWriter.Create(mStream, new XmlWriterSettings {Encoding = Encoding.UTF8}))
     {
         var ns = new XmlSerializerNamespaces();
         ns.Add("", "");
         serializer.Serialize(streamWriter, xmlVariant, ns);
         xmlString = mStream.ToString();
     }
     return xmlString;
 }
        public string ConvertAnimeDetailsToXml(IAnimeDetails animeDetails)
        {
            string xmlString;
            var    xmlVariant = _factory.CreateAnimeDetailsXml();

            _mappingEngine.Map(animeDetails, xmlVariant);
            var serializer = new XmlSerializer(typeof(AnimeDetailsXml));

            using (var mStream = new Utf8StringWriter())
                using (var streamWriter = XmlWriter.Create(mStream, new XmlWriterSettings {
                    Encoding = Encoding.UTF8
                }))
                {
                    var ns = new XmlSerializerNamespaces();
                    ns.Add("", "");
                    serializer.Serialize(streamWriter, xmlVariant, ns);
                    xmlString = mStream.ToString();
                }
            return(xmlString);
        }