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)); }
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); }
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); } }