using System;
using System.Collections.Generic;
using System.Text;
using Com.Piwigo.Lib.DTO;
using Com.Piwigo.Lib.Proxy;
using Com.Piwigo.Lib.Proxy.Response;
using Com.Piwigo.Lib.DTO.Helper;
namespace Com.Piwigo.Lib.Service
{
static public class PwgImagesService
{
///
/// private: convert response to dto object
///
///
///
static public void ConvertProxyResponseToDTO(PwgImagesProxyResponse response,
List lstImage,
ref Int32 Page, ref Int32 PerPagee, ref Int32 Count)
{
ConvertProxyResponseToDTO(response.ImageList, lstImage, ref Page, ref PerPagee, ref Count);
}
///
/// private: convert response to dto object
///
///
///
static public void ConvertProxyResponseToDTO(PwgImageListProxyResponse response,
List lstImage,
ref Int32 Page, ref Int32 PerPagee, ref Int32 Count)
{
Page = response.Page;
PerPagee = response.PerPage;
Count = response.Count;
if (response.Images != null)
{
foreach (PwgImageProxyResponse respImg in response.Images)
{
lstImage.Add(ConvertProxyResponseToDTO(respImg));
}
}
}
///
/// private: convert response to dto object
///
///
///
static public PwgImage ConvertProxyResponseToDTO(PwgImageProxyResponse response)
{
PwgImage returnValue = new PwgImage();
try
{
returnValue.Counter = response.Counter;
returnValue.Id = response.Id;
returnValue.File = response.File;
returnValue.Height = response.Height;
returnValue.Width = response.Width;
if (String.IsNullOrEmpty(response.UrlElement))
{
returnValue.UrlElement = null;
}
else
{
returnValue.UrlElement = (new UriBuilder(response.UrlElement)).Uri;
}
if (String.IsNullOrEmpty(response.UrlThunb))
{
returnValue.UrlThunb = null;
}
else
{
returnValue.UrlThunb = (new UriBuilder(response.UrlThunb)).Uri;
}
if (String.IsNullOrEmpty(response.UrlHighDef))
{
returnValue.UrlHighDef = null;
}
else
{
returnValue.UrlHighDef = (new UriBuilder(response.UrlHighDef)).Uri;
}
returnValue.Tags = new List();
if (response.Tags != null)
{
foreach (PwgTagProxyResponse tagResp in response.Tags)
{
PwgTag aTag = PwgTagsService.ConvertProxyResponseToDTO(tagResp);
returnValue.Tags.Add(aTag);
}
}
returnValue.Categories = new List();
if (response.Categories != null)
{
foreach (PwgCategoryProxyResponse catResp in response.Categories)
{
PwgCategory aCat = PwgCategoriesService.ConvertProxyResponseToDTO(catResp);
returnValue.Categories.Add(aCat);
}
}
}
catch (Exception ex)
{
throw new PwgServiceException("ConvertProxyResponseToDTO : a error is raised when converting PwgTagProxyResponse.", ex);
}
return returnValue;
}
}
}