TinyUrlMapping IApplicationsRepository.GetMapping(Guid tinyId)
 {
     using (var dc = new ApplicationsDataContext(_connectionFactory.CreateConnection()).AsReadOnly())
     {
         return(GetMapping(dc, tinyId, _webSiteQuery));
     }
 }
        void IApplicationsRepository.CreateMappings(IEnumerable <TinyUrlMapping> mappings)
        {
            const string method = "CreateMappings";

            try
            {
                using (var dc = new ApplicationsDataContext(_connectionFactory.CreateConnection()))
                {
                    foreach (var mapping in mappings)
                    {
                        string longUrl;
                        bool   secure;
                        GetLongUrlDetails(mapping, out longUrl, out secure);
                        dc.TinyUrlMappingEntities.InsertOnSubmit(mapping.Map(longUrl, secure));
                    }

                    dc.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                // Temporary log.

                foreach (var mapping in mappings)
                {
                    EventSource.Raise(Event.Error, method, ex, new StandardErrorHandler(), Event.Arg("mapping", mapping));
                }
                throw;
            }
        }
        IList <TinyUrlMapping> IApplicationsRepository.GetMappings(WebSite webSite, Guid?verticalId, bool secure, string longUrl, Guid contextId, string mimeType, int instance)
        {
            using (var dc = new ApplicationsDataContext(_connectionFactory.CreateConnection()).AsReadOnly())
            {
                var criteria = new MappingCriteria
                {
                    WebSite    = webSite,
                    VerticalId = verticalId,
                    Secure     = secure,
                    LongUrl    = longUrl,
                    ContextId  = contextId,
                    MimeType   = mimeType,
                    Instance   = instance,
                };

                return(GetMappingsByCriteria(dc, criteria, _webSiteQuery).ToList());
            }
        }