public UploadingPointData ToUploadData() { var user = Membership.GetUser(); var myUID = user == null ? new Guid() : (Guid)user.ProviderUserKey; return(new UploadingPointData() { ID = ID, IsMyPoint = CreatorID == myUID || AccessHelper.IsMaster, IsRegion = MapCoords.Any(z => !z.IsMarker), PointPosition = MapCoords.First(z => z.IsMarker).ToCoordinate(), Description = Description, Name = Name, HeaderText = Address + " / " + (ObjectType == -1 ? " Зона «Не курят» / Курение запрещено" : (ObjectType == 0 ? " Зона «Спорная» / Курение разрешено" : " Зона «Курят» / Курение разрешено")), CommentsLink = CMSPage.Get("myobjects").FullUrl + "?oid=" + ID + "&uid=" + CreatorID, EditLink = CMSPage.Get("map").FullUrl + "#EditObj=" + ID, ImageLink = MapObjectPhoto == null ? "" : UniversalEditorPagedData.GetImageWrapper("MapObjectPhotos", "ObjectID", ID.ToString(), "RawData"), IsMyFavorite = false, //CreatorID == myUID, Address = Address, TypeID = TypeID, CommentCount = MapObjectComments.Count, SmokingType = ObjectType, RegionPosition = MapCoords.Where(z => !z.IsMarker) .OrderBy(x => x.OrderNum) .ToList() .Select(x => x.ToCoordinate()) .ToList(), IconNum = MapObjectType.Icon.Replace("icon-obj", ""), UserName = User.UserProfile.FullName, UserLink = User.UserProfile.EditProfilePage }); }
private void OnBeginRequest(object sender, EventArgs e) { try { var cp = HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath; if (cp != null && InterceptPaths.Any(z => cp.StartsWith(z, StringComparison.CurrentCultureIgnoreCase)) && Exts.Any(z => cp.EndsWith(z, StringComparison.CurrentCultureIgnoreCase))) { var segs = cp.Split <string>("/").ToList(); if (!segs.Any()) { HttpContext.Current.Response.StatusCode = 404; return; } var chain = segs.Last().Split <string>("-", ".").ToList(); var ext = chain.Last(); chain = chain.Take(chain.Count - 1).ToList(); var clearChain = chain.Where(x => x != "nrt" && x != "nlg").ToList(); if (cp.Contains("/content/category/")) { clearChain = clearChain.Where(x => x != "ci" && x != "mi").ToList(); } var size = clearChain.Last(); var containInfo = false; var width = 0; if (new Regex(@"w\d+").IsMatch(size)) { containInfo = true; width = int.Parse(size.Substring(1)); } var rq = HttpContext.Current.Request.RequestContext; var helper = new UrlHelper(rq); if (cp.Contains("/content/category/")) { var col = chain.Contains("ci") ? "CategoryImage" : (chain.Contains("mi") ? "Image" : ""); if (col.IsNullOrEmpty() || !containInfo) { HttpContext.Current.Response.StatusCode = 404; return; } var rw = UniversalEditorPagedData.GetImageWrapper("StoreCategories", "ID", CatalogBrowser.CategoriesList[clearChain.Take(clearChain.Count - 1).JoinToString("-")].ID .ToString(), col, width, width); HttpContext.Current.RewritePath(rw); return; } var path = containInfo ? clearChain.Take(clearChain.Count - 1).JoinToString("-") + "." + ext : segs.Last(); path = segs.Take(segs.Count - 1).JoinToString("/") + "/" + path; var routeValues = new RouteValueDictionary { { "skiplogo", chain.Contains("nlg") }, { "filePath", path }, { "padding", 0 }, { "maxWidth", width }, { "maxHeight", width }, { "vertalign", "center" }, { "skipRotate", chain.Contains("nrt") } }; if (containInfo) { var url = UrlHelper.GenerateUrl("Master", "Resize", "Image", routeValues, helper.RouteCollection, rq, true); HttpContext.Current.RewritePath(url); return; } /* var newPath = PathHelper.TransformPath(cp); * * var ext = Path.GetExtension(newPath); * HttpContext.Current.Response.ContentType = MIMETypeWrapper.GetMIME(ext.Replace(".", "")); * if (!File.Exists(newPath)) * { * * newPath = HttpContext.Current.Server.MapPath(cp); * if (!File.Exists(newPath)) * { * HttpContext.Current.Response.StatusCode = 404; * return; * } * } * HttpContext.Current.Response.Cache.SetExpires(DateTime.Now.AddMinutes(10)); * HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.Public); * HttpContext.Current.Response.WriteFile(newPath, false); * HttpContext.Current.Response.Flush(); * HttpContext.Current.Response.End();*/ } } catch (Exception ex) { //HttpContext.Current.Response.Write(ex.Message); //HttpContext.Current.Response.Write(ex.StackTrace); } }