Ejemplo n.º 1
0
        public ActionResult URL(int Id, string viewId = "")
        {
            var nameCookie = "AdServer" + viewId;
            var cookie     = Request.Cookies[nameCookie];

            //if (cookie == null)
            //    return Redirect("http://" + Request.Url.Authority);
            using (var ctx = new AdServContext())
            {
                var repositories = EFRepositorySet.CreateRepositorySet(ctx);

                try
                {
                    var selectionRequest = new MultimediaObjectSelection.MultimediaObjectsSelectionParams
                    {
                        RequestDate   = DateTime.Now,
                        SessionId     = string.IsNullOrEmpty(cookie.Values["sessionId"]) ? "web request" : cookie.Values["sessionId"],
                        RequestSource = (int)Statistic.RequestSourceType.WWW,
                        ID            = Id
                    };

                    var ips = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
                    selectionRequest.RequestIP = !string.IsNullOrEmpty(ips) ? ips.Split(',')[0] : Request.ServerVariables["REMOTE_ADDR"];

                    var mos = new MultimediaObjectSelection(repositories);

                    const string key    = "FILESTREAM_OPTION";
                    var          urlKey = ConfigurationManager.AppSettings[key];

                    if (urlKey != null && !string.IsNullOrEmpty(urlKey))
                    {
                        bool filestreamOption;
                        bool.TryParse(urlKey, out filestreamOption);
                    }

                    bool add = true;
                    if (Request.UrlReferrer != null)
                    {
                        if (Request.Url.Host == Request.UrlReferrer.Host)
                        {
                            add = false;
                        }
                    }
                    var response = mos.GetMmObjectUrl(int.Parse(cookie.Values["Id"]), int.Parse(cookie.Values["StatusCode"]), int.Parse(cookie.Values["cmp"]), selectionRequest, add);
                    if (response != null)
                    {
                        return(Redirect(response));
                    }
                    Redirect(Request.Url.Authority);
                }
                catch
                {
                }
            }

            return(Redirect(Request.Url.Authority));
        }
Ejemplo n.º 2
0
        public ActionResult Index(string data0, string data1, string data2, string data3, int Id, string viewId)
        {
            var errors     = new List <string>();
            var nameCookie = "AdServer" + viewId;

            try
            {
                var selectionRequest = new MultimediaObjectSelection.MultimediaObjectsSelectionParams
                {
                    ID            = Id,
                    Data0         = data0,
                    Data1         = data1,
                    Data2         = data2,
                    Data3         = data3,
                    RequestDate   = DateTime.Now,
                    RequestSource = (int)Statistic.RequestSourceType.WWW
                };
                var ips = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
                selectionRequest.RequestIP = !string.IsNullOrEmpty(ips) ? ips.Split(',')[0] : Request.ServerVariables["REMOTE_ADDR"];

                var sessionId = Request.Cookies.Get(nameCookie) == null?Guid.NewGuid().ToString() : Request.Cookies[nameCookie]["sessionId"];

                selectionRequest.SessionId = sessionId;

                var cookie = new HttpCookie(nameCookie);
                cookie.Values.Add("sessionId", sessionId);

                using (var ctx = new AdServContext())
                {
                    var repositories = EFRepositorySet.CreateRepositorySet(ctx);

                    try
                    {
                        var           mos = new MultimediaObjectSelection(repositories);
                        List <string> err = new List <string>();

                        const string key    = "FILESTREAM_OPTION";
                        var          urlKey = ConfigurationManager.AppSettings[key];

                        bool filestreamOption = false;
                        if (urlKey != null && !string.IsNullOrEmpty(urlKey))
                        {
                            bool.TryParse(urlKey, out filestreamOption);
                        }

                        bool add = true;
                        if (Request.UrlReferrer != null)
                        {
                            if (Request.Url.Host == Request.UrlReferrer.Host)
                            {
                                add = false;
                            }
                        }
                        AdFile response = mos.GetMultimediaObject(selectionRequest, filestreamOption, add, out err);
                        cookie.Values.Add("cmp", response.CmpId.ToString());

                        if (err != null && err.Count > 0)
                        {
                            errors.AddRange(err);
                        }
                        else
                        {
                            cookie.Values.Add("Id", response.ID.ToString());
                            cookie.Values.Add("StatusCode", response.StatusCode.ToString());
                            Response.AppendCookie(cookie);
                            return(File(response.Contents, response.MimeType));
                        }
                    }
                    catch (Exception ex)
                    {
                        var hierarchy = new List <Exception>();
                        ExceptionsHandlingHelper.HierarchizeError(ex, ref hierarchy);
                        if (hierarchy.Count > 0)
                        {
                            errors.AddRange(hierarchy.Select(s => s.Message + Environment.NewLine + s.StackTrace).Distinct().AsEnumerable());
                        }

                        SaveErrorInLogFile(selectionRequest, ex);
                    }
                }
            }
            catch (Exception ex)
            {
                var hierarchy = new List <Exception>();
                ExceptionsHandlingHelper.HierarchizeError(ex, ref hierarchy);
                if (hierarchy.Count > 0)
                {
                    errors.AddRange(hierarchy.Select(s => s.Message + Environment.NewLine + s.StackTrace).Distinct().AsEnumerable());
                }

                SaveErrorInLogFile(ex);
            }
            return(null);
        }
Ejemplo n.º 3
0
        private void StaticClicked(GetMultimediaObject_Request request, int id, int statusCode)
        {
            var errors    = new List <string>();
            var hierarchy = new List <Exception>();

            try
            {
                if (request != null)
                {
                    var selectionRequest = new MultimediaObjectSelection.MultimediaObjectsSelectionParams
                    {
                        Data0         = request.Data0,
                        Data1         = request.Data1,
                        Data2         = request.Data2,
                        Data3         = request.Data3,
                        ID            = id,
                        RequestDate   = DateTime.Now,
                        SessionId     = request.SessionId,
                        RequestSource =
                            (int)
                            (System.Web.HttpContext.Current.Request.UserAgent == null
                                                                        ? Statistic.RequestSourceType.Desktop
                                                                        : Statistic.RequestSourceType.WWW),
                        RequestIP = HttpContext.Current.Request.UserHostAddress
                    };

                    using (var ctx = new AdServContext())
                    {
                        var repositories = EFRepositorySet.CreateRepositorySet(ctx);

                        try
                        {
                            var mos = new MultimediaObjectSelection(repositories);

                            const string key    = "FILESTREAM_OPTION";
                            var          urlKey = ConfigurationManager.AppSettings[key];

                            if (urlKey != null && !string.IsNullOrEmpty(urlKey))
                            {
                                bool filestreamOption;
                                bool.TryParse(urlKey, out filestreamOption);
                            }

                            mos.SaveStatisticsEntry(selectionRequest, new AdFile {
                                ID = id, StatusCode = statusCode
                            }, true);
                        }
                        catch (Exception ex)
                        {
                            ExceptionsHandlingHelper.HierarchizeError(ex, ref hierarchy);
                            if (hierarchy.Count > 0)
                            {
                                errors.AddRange(hierarchy.Select(s => s.Message + Environment.NewLine + s.StackTrace).Distinct().AsEnumerable());
                            }
                            SaveErrorInLogFile(selectionRequest, ex);
                        }
                    }
                }
                else
                {
                    errors.Add("Parametr requesta nie może być nullem.");
                }
            }
            catch (Exception ex)
            {
                ExceptionsHandlingHelper.HierarchizeError(ex, ref hierarchy);
                if (hierarchy.Count > 0)
                {
                    errors.AddRange(hierarchy.Select(s => s.Message + Environment.NewLine + s.StackTrace).Distinct().AsEnumerable());
                }
                SaveErrorInLogFile(ex);
            }
        }