internal IEnumerable <TModel> GetData(object AuthorID = null, bool?isBlock = null, bool fromView = false) { var filters = new List <GenericDataFormat.FilterItems>(); if (AuthorID != null) { filters.Add(new GenericDataFormat.FilterItems() { Property = "AuthorID", Operation = GenericDataFormat.FilterOperations.Equal, Value = AuthorID, LogicalOperation = GenericDataFormat.LogicalOperations.And }); } var requestBody = new GenericDataFormat() { Filters = filters }; if (fromView) { return(new AuthorModel <TModel>().GetView <TModel>(requestBody).PageItems); } else { return(new AuthorModel <TModel>().Get(requestBody)); } }
// GET: SIMCards/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var filters = new List <GenericDataFormat.FilterItems>(); filters.Add(new GenericDataFormat.FilterItems() { Property = "SIMCardId", Operation = GenericDataFormat.FilterOperations.Equal, Value = id }); requestBody = new GenericDataFormat() { Filters = filters, Includes = new GenericDataFormat.IncludeItems() { References = "SIMCardStatus" } }; var items = new SIMCardModel <SIMCardViewModel>().Get(requestBody); if (items.Count < 1 || items.ElementAt(0) == null) { return(HttpNotFound()); } var model = (SIMCardViewModel)items.ElementAt(0); model.BindCreate_Modify_User(); return(View(model)); }
public virtual IHttpActionResult GetView(GenericDataFormat data) { var queryItems = GetWithOptions(data); dynamic pageItems = null; string typ = typeof(T).FullName; if (queryItems is List <Object> ) { pageItems = ((List <Object>)queryItems); } else { var query = (IQueryable <T>)queryItems; pageItems = query.ToList <T>(); } //remove paging data.Paging = null; queryItems = GetWithOptions(data); int TotalItemsCount = 0; if (queryItems is List <Object> ) { TotalItemsCount = ((List <Object>)queryItems).Count(); var ObjectsResult = new PaginationResult <Object> { TotalItemsCount = TotalItemsCount, PageItems = pageItems }; return(Content(HttpStatusCode.OK, ObjectsResult)); } else { var query = (IQueryable <T>)queryItems; TotalItemsCount = query.Count(); } //var serializer = new JavaScriptSerializer { MaxJsonLength = Int32.MaxValue }; //string s = serializer.Serialize(new PaginationResult<T> //{ // TotalItemsCount = TotalItemsCount, // PageItems = pageItems //}); var result = new PaginationResult <T> { TotalItemsCount = TotalItemsCount, PageItems = pageItems }; //var resp = new HttpResponseMessage() //{ // Content = // new StringContent(serializer.Serialize(result), System.Text.Encoding.UTF8, "application/json") //}; return(Content(HttpStatusCode.OK, result)); //return ResponseMessage(resp); }
public virtual IHttpActionResult Get(GenericDataFormat data) { GetAuthorization(); if (!IsAuthorize(Actions.GetByOptions)) { return(Content(HttpStatusCode.Unauthorized, "Unauthorized")); } if (data != null) { dynamic result = GetWithOptions(data); return(Content(HttpStatusCode.OK, result)); //if (!(result is IQueryable<T>)) //{ // return //} //else //{ // return Content(HttpStatusCode.OK, (List<object>)result); //} } else { return(Get()); } }
internal void Get_Create_Modify_User(int createUserId, int?modifyUserId, ref UserViewModel createUser, ref UserViewModel modifyUser) { var filters = new List <GenericDataFormat.FilterItems>(); if (createUserId != 0) { filters.Add(new GenericDataFormat.FilterItems() { Property = "UserId", Operation = GenericDataFormat.FilterOperations.Equal, Value = createUserId, LogicalOperation = GenericDataFormat.LogicalOperations.Or }); } if (modifyUserId != null && modifyUserId != 0) { filters.Add(new GenericDataFormat.FilterItems() { Property = "UserId", Operation = GenericDataFormat.FilterOperations.Equal, Value = createUserId }); } var requestBody = new GenericDataFormat() { Filters = filters }; var users = this.Get(requestBody); createUser = users.Cast <UserViewModel>().SingleOrDefault(x => x.UserId == createUserId); modifyUser = users.Cast <UserViewModel>().SingleOrDefault(x => x.UserId == modifyUserId); }
internal IEnumerable <TModel> GetData(int?userRoleId = null, int?userId = null, int?roleId = null, bool?isBlock = null, bool fromView = false) { var filters = new List <GenericDataFormat.FilterItems>(); if (userRoleId != null) { filters.Add(new GenericDataFormat.FilterItems() { Property = "UserRoleId", Operation = GenericDataFormat.FilterOperations.Equal, Value = userRoleId, LogicalOperation = GenericDataFormat.LogicalOperations.And }); } if (userId != null) { filters.Add(new GenericDataFormat.FilterItems() { Property = "UserId", Operation = GenericDataFormat.FilterOperations.Equal, Value = userId, LogicalOperation = GenericDataFormat.LogicalOperations.And }); } if (roleId != null) { filters.Add(new GenericDataFormat.FilterItems() { Property = "RoleId", Operation = GenericDataFormat.FilterOperations.Equal, Value = roleId, LogicalOperation = GenericDataFormat.LogicalOperations.And }); } if (isBlock != null) { filters.Add(new GenericDataFormat.FilterItems() { Property = "IsBlock", Operation = GenericDataFormat.FilterOperations.Equal, Value = isBlock, LogicalOperation = GenericDataFormat.LogicalOperations.And }); } var requestBody = new GenericDataFormat() { Filters = filters }; if (fromView) { return(new UserRoleModel <TModel>().GetView <TModel>(requestBody).PageItems); } else { return(new UserRoleModel <TModel>().Get(requestBody)); } }
public virtual List <TModel> GetAsDDLst(string includeProperties, string sortByProperty, List <GenericDataFormat.FilterItems> filters = null, GenericDataFormat.SortType sortType = GenericDataFormat.SortType.Asc, bool GetByView = false) { var sorts = new List <GenericDataFormat.SortItems>(); sorts.Add(new GenericDataFormat.SortItems() { Property = sortByProperty, SortType = sortType }); //create request body parameters GenericDataFormat requestBody = new GenericDataFormat() { Includes = new GenericDataFormat.IncludeItems() { Properties = includeProperties }, Sorts = sorts }; requestBody.Filters = filters; if (!GetByView) { var lst = this.Get(requestBody); return(lst); } else { var lst = this.GetView <TModel>(requestBody).PageItems; return(lst); } }
public override IHttpActionResult GetGridView(GenericDataFormat data) { var controller = new ApiUserRoleViewController(); controller.Request = new HttpRequestMessage(); controller.Configuration = new HttpConfiguration(); return(controller.GetGridView(data)); }
public override IHttpActionResult Export(GenericDataFormat data) { var controller = new ApiConferenceViewController(); controller.Request = new HttpRequestMessage(); controller.Configuration = new HttpConfiguration(); return(controller.Export(data)); }
internal IEnumerable <TModel> GetData(object JournalVersionID = null, object JournalID = null, object JournalVolumeTypeID = null, bool?isBlock = null, bool fromView = false) { var filters = new List <GenericDataFormat.FilterItems>(); if (JournalVersionID != null) { filters.Add(new GenericDataFormat.FilterItems() { Property = "JournalVersionID", Operation = GenericDataFormat.FilterOperations.Equal, Value = JournalVersionID, LogicalOperation = GenericDataFormat.LogicalOperations.And }); } if (JournalID != null) { filters.Add(new GenericDataFormat.FilterItems() { Property = "JournalID", Operation = GenericDataFormat.FilterOperations.Equal, Value = JournalID, LogicalOperation = GenericDataFormat.LogicalOperations.And }); } if (JournalVolumeTypeID != null) { filters.Add(new GenericDataFormat.FilterItems() { Property = "JournalVolumeTypeID", Operation = GenericDataFormat.FilterOperations.Equal, Value = JournalVolumeTypeID, LogicalOperation = GenericDataFormat.LogicalOperations.And }); } if (isBlock != null) { filters.Add(new GenericDataFormat.FilterItems() { Property = "IsBlock", Operation = GenericDataFormat.FilterOperations.Equal, Value = isBlock, LogicalOperation = GenericDataFormat.LogicalOperations.And }); } var requestBody = new GenericDataFormat() { Filters = filters }; if (fromView) { return(new JournalVersionModel <TModel>().GetView <TModel>(requestBody).PageItems); } else { return(new JournalVersionModel <TModel>().Get(requestBody)); } }
public JsonResult GetGridView(GenericDataFormat options) { var model = (PaginationResult <TIndexViewModel>)Activator.CreateInstance(typeof(PaginationResult <TIndexViewModel>)); DelegatePreGetGridView delegatePreExecute = new DelegatePreGetGridView(FuncPreGetGridView); delegatePreExecute(ref model, options); DelegatePostGetGridView delegatePostExecute = new DelegatePostGetGridView(FuncPostGetGridView); return(delegatePostExecute(ref model)); }
public virtual List <TModel> Get(GenericDataFormat requestBody) { string url = ApiServerUrl + ControllerRoute + "get"; MyHttpRequestMessage request = new MyHttpRequestMessage(url, HttpMethod.Post) { RequestBody = new StringContent(JsonConvert.SerializeObject(requestBody), System.Text.Encoding.UTF8, "application/json") }; var task = request.Execute <List <TModel> >(); task.Wait(); return(task.Result); }
public JsonResult GetInfo(GenericDataFormat Options) { //create instance List of TViewModel var model = (List <TViewModel>)Activator.CreateInstance(typeof(List <TViewModel>)); if (Options.Filters != null) { dynamic instance = Activator.CreateInstance(typeof(TModel_TViewModel)); model = instance.GetView <TViewModel>(Options).PageItems; } return(Json(model)); }
public override void FuncPreExport(ref GenericDataFormat ExportRequestBody, ref string ExportFileName) { ExportFileName = "Sponsors.xlsx"; string properties = "SponsorName,Shortcut,IsBlock"; ExportRequestBody = new GenericDataFormat() { Includes = new GenericDataFormat.IncludeItems() { Properties = properties, } }; }
public override void FuncPreDetailsView(object id, ref List <SponsorDetailsViewModel> items) { filters = new List <GenericDataFormat.FilterItems>(); filters.Add(new GenericDataFormat.FilterItems() { Property = "SponsorID", Operation = GenericDataFormat.FilterOperations.Equal, Value = id }); var requestBody = new GenericDataFormat() { Filters = filters }; items = new SponsorModel <SponsorDetailsViewModel>().Get(requestBody); }
public virtual IHttpActionResult GetGridView(GenericDataFormat data) { GetAuthorization(); if (!IsAuthorize(Actions.GetGridView)) { return(Content(HttpStatusCode.Unauthorized, "Unauthorized")); } var queryItems = GetWithOptions(data); dynamic pageItems = null; string typ = typeof(T).FullName; if (queryItems is List <Object> ) { pageItems = ((List <Object>)queryItems); } else { var query = (IQueryable <T>)queryItems; pageItems = query.ToList <T>(); } //remove paging data.Paging = null; queryItems = GetWithOptions(data); int TotalItemsCount = 0; if (queryItems is List <Object> ) { TotalItemsCount = ((List <Object>)queryItems).Count(); var ObjectsResult = new PaginationResult <Object> { TotalItemsCount = TotalItemsCount, PageItems = pageItems }; return(Content(HttpStatusCode.OK, ObjectsResult)); } else { var query = (IQueryable <T>)queryItems; TotalItemsCount = query.Count(); } var result = new PaginationResult <T> { TotalItemsCount = TotalItemsCount, PageItems = pageItems }; return(Content(HttpStatusCode.OK, result)); }
public ActionResult TestDesign() { requestBody = new GenericDataFormat() { Includes = new GenericDataFormat.IncludeItems() { References = "SIMCardStatus" } }; var model = new SIMCardModel <SIMCardViewModel>().Get(requestBody); return(View(model)); }
internal IEnumerable <TModel> GetData(Guid?PublishPeriodID = null, string PublishPeriodName = null, bool?isBlock = null, bool fromView = false) { var filters = new List <GenericDataFormat.FilterItems>(); if (PublishPeriodID != null) { filters.Add(new GenericDataFormat.FilterItems() { Property = "PublishPeriodID", Operation = GenericDataFormat.FilterOperations.Equal, Value = PublishPeriodID, LogicalOperation = GenericDataFormat.LogicalOperations.And }); } if (PublishPeriodName != null) { filters.Add(new GenericDataFormat.FilterItems() { Property = "PublishPeriodName", Operation = GenericDataFormat.FilterOperations.Equal, Value = PublishPeriodName, LogicalOperation = GenericDataFormat.LogicalOperations.And }); } if (isBlock != null) { filters.Add(new GenericDataFormat.FilterItems() { Property = "IsBlock", Operation = GenericDataFormat.FilterOperations.Equal, Value = isBlock, LogicalOperation = GenericDataFormat.LogicalOperations.And }); } var requestBody = new GenericDataFormat() { Filters = filters }; if (fromView) { return(new PublishPeriodModel <TModel>().GetView <TModel>(requestBody).PageItems); } else { return(new PublishPeriodModel <TModel>().Get(requestBody)); } }
internal List <TModel> GetByView(int id) { var filters = new List <GenericDataFormat.FilterItems>(); filters.Add(new GenericDataFormat.FilterItems() { Property = "UserId", Operation = GenericDataFormat.FilterOperations.Equal, Value = id }); var requestBody = new GenericDataFormat() { Filters = filters }; return(this.GetView <TModel>(requestBody).PageItems); }
public virtual IHttpActionResult Get(GenericDataFormat data) { GetAuthorization(); if (!IsAuthorize(Actions.GetByOptions)) { return(Content(HttpStatusCode.Unauthorized, "Unauthorized")); } if (data != null) { dynamic result = GetWithOptions(data); return(Content(HttpStatusCode.OK, result)); } else { return(Get()); } }
// GET: SIMCards public ActionResult Index() { if (TempData["AlertMessage"] != null) { ViewBag.AlertMessage = TempData["AlertMessage"]; } requestBody = new GenericDataFormat() { Includes = new GenericDataFormat.IncludeItems() { References = "SIMCardStatus" } }; var model = new SIMCardModel <SIMCardViewModel>().Get(requestBody); return(View(model)); }
public virtual IHttpActionResult Export(GenericDataFormat data) { GetAuthorization(); if (!IsAuthorize(Actions.Export)) { return(Content(HttpStatusCode.Unauthorized, "Unauthorized")); } List <object> result = null; if (data != null) { var tempResult = GetWithOptions(data); if (!(tempResult is List <object>)) { result = ((IQueryable <T>)tempResult).ToList <object>(); } else { result = tempResult; } } else { result = repo.Repo.Get(filter: DataConstrains).ToList <object>(); } //export data to file var exportFilePath = new Export <T>(result).ExportData(); if (!System.IO.File.Exists(exportFilePath)) { return(Content(HttpStatusCode.InternalServerError, "Export process failed")); } else { HttpResponseMessage responseMessage = null; // Serve the file to the client responseMessage = Request.CreateResponse(HttpStatusCode.OK); responseMessage.Content = new StreamContent(new System.IO.FileStream(exportFilePath, System.IO.FileMode.Open, System.IO.FileAccess.Read)); responseMessage.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream"); responseMessage.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment"); responseMessage.Content.Headers.ContentDisposition.FileName = typeof(T).Name; return(ResponseMessage(responseMessage)); } }
internal void Get_Create_Modify_User(Guid createUserId, Guid?modifyUserId, ref string CreateUser_FullName, ref string ModifyUser_FullName) { var filters = new List <GenericDataFormat.FilterItems>(); if (createUserId != null) { filters.Add(new GenericDataFormat.FilterItems() { Property = "UserId", Operation = GenericDataFormat.FilterOperations.Equal, Value = createUserId, LogicalOperation = GenericDataFormat.LogicalOperations.Or }); } if (modifyUserId != null) { filters.Add(new GenericDataFormat.FilterItems() { Property = "UserId", Operation = GenericDataFormat.FilterOperations.Equal, Value = createUserId }); } var requestBody = new GenericDataFormat() { Filters = filters }; var users = this.GetView <UserViewModel>(requestBody).PageItems; var createUser = users.SingleOrDefault(x => x.UserId == createUserId); if (createUser != null) { CreateUser_FullName = createUser.FullName; } if (modifyUserId != null) { var modifyUser = users.SingleOrDefault(x => x.UserId == modifyUserId); if (modifyUser != null) { ModifyUser_FullName = modifyUser.FullName; } } }
public UserViewModel Login() { GenericDataFormat requestBody = new GenericDataFormat(); requestBody.Filters = new List <GenericDataFormat.FilterItems>(); requestBody.Filters.Add(new GenericDataFormat.FilterItems() { Property = "UserName", Value = this.UserName, Operation = GenericDataFormat.FilterOperations.Equal }); UserViewModel user = new UserModel <UserViewModel>().GetView <UserViewModel>(requestBody).PageItems.SingleOrDefault(); if (user != null) { //var pass = UserModel<UserViewModel>.GetHashPassword(this.UserName, this.Password); if (user.Password == UserModel <UserViewModel> .GetHashPassword(this.UserName, this.Password)) { return(user); } } return(null); }
public ActionResult Export() { try { requestBody = new GenericDataFormat() { Includes = new GenericDataFormat.IncludeItems() { Properties = "SIMCardId,SerialNumber,GSM,SIMCardStatus.SIMCardStatusName_en", References = "SIMCardStatus" } }; var fileBytes = new SIMCardModel <SIMCard>().Export(requestBody); return(File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, "SIMCards.xlsx")); } catch (AggregateException ex) { if (ex.InnerException is UnauthorizedAccessException) { return(RedirectToAction("Unauthorized", "Login")); } throw ex; } }
public JsonResult GetDDL(GenericDataFormat Options, bool fromView = false) { var filters = Options.Filters; IEnumerable <Helper.CustomSelectListItem> model = null; if (fromView) { if (Options.Filters != null) { dynamic instance = Activator.CreateInstance(typeof(TModel_TViewModel)); model = instance.GetDDL(filters: filters); } } else { if (Options.Filters != null) { dynamic instance = Activator.CreateInstance(typeof(TModel_TDBModel)); model = instance.GetDDL(filters: filters); } } return(Json(model.ToList())); }
// POST: Controller/Export public virtual ActionResult Export(GenericDataFormat ExportRequestBody = null) { try { DelegatePreExport delegatePreExecute = new DelegatePreExport(FuncPreExport); delegatePreExecute(ref ExportRequestBody, ref this.ExportFileName); //create instance of TModel of TDBModel dynamic instance = Activator.CreateInstance(typeof(TModel_TDBModel)); var fileBytes = instance.Export(ExportRequestBody); DelegatePostExport delegatePostExecute = new DelegatePostExport(FuncPostExport); return(delegatePostExecute(fileBytes, this.ExportFileName)); } catch (AggregateException ex) { if (ex.InnerException is UnauthorizedAccessException) { return(RedirectToAction("Unauthorized", "Login")); } throw ex; } }
public UserViewModel GetUserFromSession() { UserViewModel cUser = null; if (HttpContext.Current.Session != null && HttpContext.Current.Session[UserViewModel.SessionName] != null) { cUser = (UserViewModel)HttpContext.Current.Session[UserViewModel.SessionName]; } //for test if (cUser == null) { var requestBody = new GenericDataFormat(); requestBody.Filters = new List <GenericDataFormat.FilterItems>(); requestBody.Filters.Add(new GenericDataFormat.FilterItems() { Property = "UserId", Operation = GenericDataFormat.FilterOperations.Equal, Value = "5C8FBE12-69B2-4EB7-B116-201AEEBD862B" }); cUser = new UserModel <UserViewModel>().GetView <UserViewModel>(requestBody).PageItems.SingleOrDefault(); cUser.SaveUserToLocalStorage(true); } return(cUser); }
public virtual IHttpActionResult PutWithReference(T value) { GetAuthorization(); if (!IsAuthorize(Actions.Put)) { return(Content(HttpStatusCode.Unauthorized, "Unauthorized")); } //Get original Item by PK with references //get PK property string pkPropName = Repository <T> .GetPKColumns(repo.Repo._context).SingleOrDefault(); object id = typeof(T).GetProperty(pkPropName).GetValue(value); //filter by pk List <GenericDataFormat.FilterItems> filters = new List <FilterItems>(); filters.Add(new FilterItems() { Property = pkPropName, Operation = FilterOperations.Equal, Value = id, LogicalOperation = LogicalOperations.And }); //get list references properites with ICollection,IEnumable,IList type var referenceProps = typeof(T).GetProperties() .Where(p => p.PropertyType.IsGenericType && p.PropertyType.GetInterfaces().Any(x => x.GetGenericTypeDefinition() == typeof(IEnumerable <>))); //execlude self reference referenceProps = referenceProps.Where(p => !p.PropertyType.GetInterfaces().Any(x => x == typeof(IEnumerable <T>))); GenericDataFormat requestBody = new GenericDataFormat() { Filters = filters, Includes = new IncludeItems() { References = string.Join(",", referenceProps.Select(x => x.Name)) } }; //get item with all references var queryItems = GetWithOptions(requestBody); dynamic Items = null; if (queryItems is List <Object> ) { Items = ((List <Object>)queryItems); } else { var query = (IQueryable <T>)queryItems; Items = query.ToList <T>(); } if (Items != null && Items.Count == 1) { T originalItem = Items[0]; foreach (var refProp in referenceProps) { if (refProp.GetValue(value) != null) { //get reference type Type refType = refProp.PropertyType.GetGenericArguments()[0]; //create Repository of reference type var ref_repoType = typeof(Repository <>).MakeGenericType(refType); ////create instance of Repository of reference type dynamic ref_rep = Activator.CreateInstance(ref_repoType, repo.Repo._context); //get reference pk //set the parameters of method object[] parameters = new object[] { repo.Repo._context }; //invoke GetPKColumns method in Repository class with paramters to get the PK column name var method = ref_repoType.GetMethod("GetPKColumns", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public); //invoke GetFilter method with parameters var ref_pks = (IEnumerable <string>)method.Invoke(null, parameters); if (ref_pks != null && ref_pks.SingleOrDefault() != null) { string ref_PK = ref_pks.SingleOrDefault(); IEnumerable <object> refValue = (IEnumerable <object>)refProp.GetValue(value); IEnumerable <object> originalRefValue = (IEnumerable <object>)refProp.GetValue(originalItem); foreach (var childItem in refValue) { var originalChildItem = originalRefValue .Where(c => c.GetType().GetProperty(ref_PK).GetValue(c) == childItem.GetType().GetProperty(ref_PK).GetValue(childItem) //&& c.GetType().GetProperty(ref_PK).GetValue(c) != null && c.GetType().GetProperty(ref_PK).GetValue(c).ToString() != "0") .SingleOrDefault(); // Is original child item with same ID in DB? if (originalChildItem != null) { //Call Detach method with parameters //set the parameters of method parameters = new object[] { originalChildItem }; //invoke Detach method in Repository class with paramters to Detach old value method = ref_repoType.GetMethod("Detach"); method.Invoke(ref_rep, parameters); //Call Update method with parameters //set the parameters of method parameters = new object[] { childItem }; //invoke Update method in Repository class with paramters to Update old value to new value method = ref_repoType.GetMethod("UpdateSingle"); method.Invoke(ref_rep, parameters); } else { //Add new value //Call Insert method with parameters //set the parameters of method parameters = new object[] { childItem }; //invoke GetPKColumns method in Repository class with paramters to get the PK column name method = ref_repoType.GetMethod("InsertSingle"); method.Invoke(ref_rep, parameters); } } foreach (var originalChildItem in originalRefValue.Where(c => c.GetType().GetProperty(ref_PK).GetValue(c).ToString() != "0").ToList()) { // Are there child items in the DB which are NOT in the // new child item collection anymore? if (!refValue.Any(c => c.GetType().GetProperty(ref_PK).GetValue(c) == originalChildItem.GetType().GetProperty(ref_PK).GetValue(originalChildItem))) { //Delete old value // Yes -> It's a deleted child item -> Delete //repo.Repo.Detach(originalChildItem); //Call Detach method with parameters //set the parameters of method parameters = new object[] { originalChildItem }; //invoke Detach method in Repository class with paramters to Detach old value method = ref_repoType.GetMethod("Detach"); method.Invoke(ref_rep, parameters); //Call Delete method with parameters //get deleted id var ref_delete_id = originalChildItem.GetType().GetProperty(ref_PK).GetValue(originalChildItem); //set the parameters of method parameters = new object[] { ref_delete_id }; //invoke Delete method in Repository class with paramters to Delete old value by PK method = ref_repoType.GetMethod("DeleteSingle"); method.Invoke(ref_rep, parameters); } } } } } // Update scalar/complex properties repo.Repo.Detach(originalItem); repo.Repo.Update(value); repo.Save(); return(Content(HttpStatusCode.OK, value)); } else { return(Content(HttpStatusCode.Unauthorized, "Unauthorized")); } }
private dynamic GetWithOptions(GenericDataFormat data) { dynamic result = null; Func <IQueryable <T>, IOrderedQueryable <T> > orderBy = null; List <SortItems> thenByOrders = null; dynamic includeProperties = null; dynamic includeReference = null; Expression <Func <T, bool> > filterExpr = null; int?pageNumber = null; int?pageSize = null; //include reference if (data.Includes != null) { includeProperties = !string.IsNullOrEmpty(data.Includes.Properties) ? data.Includes.Properties.Split(',') : null; includeReference = data.Includes.References; } //filters filterExpr = Repository <T> .GetFilter(data.Filters); // check if there is adata access constrains if (DataConstrains != null) { //check if there is custom filterations if (filterExpr != null) { //combine data access constrains to filters filterExpr = filterExpr.AndAlso(DataConstrains); } else { //set filteration as data access constrains filterExpr = DataConstrains; } } //orderby if (data.Sorts != null && data.Sorts.Count > 0) { var sortItem = data.Sorts[0]; orderBy = Repository <T> .GetOrderBy(sortItem.Property, sortItem.SortType); if (data.Sorts.Count > 1) { thenByOrders = data.Sorts.Skip(1).ToList(); } } //paging if (data.Paging != null) { pageNumber = data.Paging.PageNumber; pageSize = data.Paging.PageSize; if (orderBy == null) { IEnumerable <string> keyNames = Repository <T> .GetPKColumns(repo.Repo._context); orderBy = Repository <T> .GetOrderBy(keyNames.ElementAt(0), GenericDataFormat.SortType.Asc); } } //order by //List<Expression<Func<T,object>>> thenSortsSelectors = null; //if (data.Sorts != null && data.Sorts.Count > 0) //{ // orderBy = Repository<T>.GetOrderBy(data.Sorts[0].Property, data.Sorts[0].SortType); // thenSortsSelectors = new List<Expression<Func<T, object>>>(); // foreach (var sort in data.Sorts.Skip(1)) // { // thenSortsSelectors.Add(Repository<T>.GetSelector(sort.Property)); // } //} //order by //if (data.Sorts != null && data.Sorts.Count > 0) //{ // orderBy = Repository<T>.GetOrderBy(data.Sorts[0].Property, data.Sorts[0].SortType); // thenSorts = new List<Func<IQueryable<T>, IOrderedQueryable<T>>>(); // foreach (var sort in data.Sorts.Skip(1)) // { // thenSorts.Add(Repository<T>.GetOrderBy(sort.Property, sort.SortType)); // } //} result = repo.Repo.GetWithOptions(includeProperties: includeProperties, includeReferences: includeReference, filter: filterExpr, orderBy: orderBy, thenByOrders: thenByOrders, pageNumber: pageNumber, pageSize: pageSize); return(result); }