public static void SaveFor <T, Y>(this T obj, Expression <Func <T, Y> > expression, string folder = "/Content/Upload") { string name = expression.GetPropertyName(); HttpPostedFile fileBase = HttpContext.Current.Request.Files[name]; var s = fileBase.Save(); if (s != null) { obj.GetType().GetProperties().FirstOrDefault(q => q.Name == name)?.SetValue(obj, s); } }
public static void SaveFor <T, Y>(this T obj, Expression <Func <T, Y> > expression, string folder = "/Content/Upload") { string name = expression.GetPropertyName(); HttpPostedFile fileBase = HttpContext.Current.Request.Files[name]; var s = fileBase.Save(); if (s != null) { var property = obj.GetType().GetProperties().FirstOrDefault(q => q.Name == name); string old = HttpContext.Current.Server.MapPath(property?.GetValue(obj) + ""); if (File.Exists(old)) { File.Delete(old); } property?.SetValue(obj, s); } }