protected void Page_Load(object sender, EventArgs e) { try { if (Request["r"] != null) { long rid = Convert.ToInt64(Request["r"]); aqufitEntities entities = new aqufitEntities(); RecipeExtended re = entities.RecipeExtendeds.Include("Image").FirstOrDefault(r => r.UserStream.Id == rid); if (Request["f"] != null) { // TODO: cache if (re.Image != null) { Affine.Data.Image image = entities.Image.FirstOrDefault(i => i.Id == re.Image.ImageLargeKey); Response.ContentType = re.Image.ContentType; if (image != null) { Response.OutputStream.Write(image.Bytes, 0, image.Bytes.Length); } else { Response.OutputStream.Write(re.Image.Bytes, 0, re.Image.Bytes.Length); } } else { Response.ContentType = "image/jpg"; byte[] ret = System.IO.File.ReadAllBytes(Server.MapPath("~/DesktopModules/ATI_Base/resources/images/meal.jpg")); Response.OutputStream.Write(ret, 0, ret.Length); } Response.Flush(); Response.End(); return; } else { // TODO: cache if (re.Image != null) { Response.ContentType = re.Image.ContentType; Response.OutputStream.Write(re.Image.Bytes, 0, re.Image.Bytes.Length); } else { Response.ContentType = "image/jpg"; byte[] ret = System.IO.File.ReadAllBytes(Server.MapPath("~/DesktopModules/ATI_Base/resources/images/meal.jpg")); Response.OutputStream.Write(ret, 0, ret.Length); } Response.Flush(); Response.End(); return; } } } catch (Exception) { // fall through } Response.ContentType = "image/jpg"; byte[] ret2 = System.IO.File.ReadAllBytes(Server.MapPath("~/DesktopModules/ATI_Base/resources/images/meal.jpg")); Response.OutputStream.Write(ret2, 0, ret2.Length); Response.Flush(); Response.End(); }
public long SaveRecipe(long uid, long pid, Affine.Data.json.StreamData recipe) { aqufitEntities entities = new aqufitEntities(); UserSettings settings = entities.UserSettings.FirstOrDefault(us => us.UserKey == uid && us.PortalKey == pid); Recipe r = null; RecipeExtended re = null; if (recipe.Id > 0) { r = entities.UserStreamSet.OfType<Recipe>().Include("RecipeExtendeds").FirstOrDefault(us => us.UserSetting.UserKey == uid && us.PortalKey == pid && us.Id == recipe.Id); re = r.RecipeExtendeds.First(); RecipeIngredient[] riOld = entities.RecipeIngredients.Where(ri => ri.RecipeExtended.Id == re.Id).ToArray(); foreach (RecipeIngredient ri in riOld) { entities.DeleteObject(ri); // delete and re add new ing } }else{ r = new Recipe(); re = new RecipeExtended(); re.NumRatings = 1; re.NumStrictness = 1; re.UserStream = r; entities.AddToUserStreamSet(r); r.Date = DateTime.Now.ToUniversalTime(); } r.PortalKey = pid; r.UserSetting = settings; r.TimeStamp = DateTime.Now.ToUniversalTime(); r.Title = recipe.Title; r.Description = recipe.Description; r.AvrStrictness = recipe.AvrStrictness; r.AvrRating = recipe.AvrRating; r.NumServings = recipe.NumServings; r.Tags = recipe.Tags; r.TimeCook = recipe.TimeCook; r.TimePrep = recipe.TimePrep; re.Directions = recipe.RecipeExtended.Directions; RecipeIngredient[] riArray = recipe.RecipeExtended.Ingredients.Select(i => new RecipeIngredient() { Text = i.Name, RecipeExtended = re }).ToArray(); entities.SaveChanges(); // Update the metrics for this user if (recipe.Id == 0) // if thie is NOT an edit { Metric met = entities.Metrics.FirstOrDefault(m => m.UserSetting.UserKey == uid && m.UserSetting.PortalKey == pid && m.MetricType == (int)Affine.Utils.MetricUtil.MetricType.NUM_RECIPES); if (met == null) { met = new Metric() { UserSetting = settings, MetricType = (int)Affine.Utils.MetricUtil.MetricType.NUM_RECIPES, MetricValue = "1" // This is the first recipe they have saved }; entities.AddToMetrics(met); } else { met.MetricValue = "" + (Convert.ToInt32(met.MetricValue) + 1); } entities.SaveChanges(); UserStream ret = entities.UserStreamSet.OfType<Recipe>().Where(u => u.PortalKey == pid && u.UserSetting.UserKey == uid).OrderByDescending(u => u.Id).FirstOrDefault(); return ret.Id; } return recipe.Id; }