public virtual ServiceResult <T> Add(T item) { var result = Validate(item); if (result.HasViolation) { return(result); } var editor = item as EditorEntity; if (editor != null) { if (ApplicationContext.CurrentUser != null) { editor.CreateBy = ApplicationContext.CurrentUser.UserID; editor.CreatebyName = ApplicationContext.CurrentUser.UserName; editor.LastUpdateBy = ApplicationContext.CurrentUser.UserID; editor.LastUpdateByName = ApplicationContext.CurrentUser.UserName; } editor.CreateDate = DateTime.Now; editor.LastUpdateDate = DateTime.Now; } CurrentDbSet.Add(item); DbContext.SaveChanges(); return(result); }
public async Task <GameRoom> GetByIdWithIncludedEventAndModeratorsJoinObject(int id) { return(await CurrentDbSet .Include(x => x.Event) .ThenInclude(x => x.Moderators) .FirstOrDefaultAsync(x => x.Id == id)); }
public virtual ServiceResult <T> AddRange(params T[] items) { ServiceResult <T> result = new ServiceResult <T>(); foreach (var item in items) { var itemResult = Validate(item); if (itemResult.HasViolation) { return(itemResult); } var editor = item as EditorEntity; if (editor != null) { if (ApplicationContext.CurrentUser != null) { editor.CreateBy = ApplicationContext.CurrentUser.UserID; editor.CreatebyName = ApplicationContext.CurrentUser.UserName; editor.LastUpdateBy = ApplicationContext.CurrentUser.UserID; editor.LastUpdateByName = ApplicationContext.CurrentUser.UserName; } editor.CreateDate = DateTime.Now; editor.LastUpdateDate = DateTime.Now; } } CurrentDbSet.AddRange(items); DbContext.SaveChanges(); return(result); }
/// <summary> /// Assign values to specified property of Model from local DbSet and propagate changes to DGV. /// </summary> /// <typeparam name="T">Type of Model property</typeparam> /// <param name="prop">Name of properrty of Model or Column from dgv</param> /// <param name="val">Value</param> public void FillDbSetValues <T>(string prop, T val) { try { CellValueChanged -= RDataGridView_CellValueChanged; foreach (var i in SelectedCells.OfType <DataGridViewCell>().Select(c => c.RowIndex).Where(c => c >= 0).Distinct()) { var m = CurrentDbSet.Where(mm => mm.Id == (int)Rows[i].Cells["Id"].Value).FirstOrDefault(); if (m == null) { continue; } var setPropValue = m.GetType().GetProperty(prop).GetSetMethod(); setPropValue.Invoke(m, new object[] { val }); CurrentDbSet.Update(m); } SaveChanges(); Refresh(); CellValueChanged += RDataGridView_CellValueChanged; } catch (Exception ex) { Report.Notify(new RCM.Message(Codes.ERR_UI_WF_FILL_DB_VAL) { DetailedText = string.Join(Environment.NewLine, prop, ex.Message) }); } }
public virtual IList <T> Get(Expression <Func <T, bool> > filter, Pagination pagination) { pagination.RecordCount = Count(filter); IQueryable <T> result; if (filter != null) { result = CurrentDbSet.Where(filter); } else { result = CurrentDbSet; } if (pagination.OrderBy != null || pagination.OrderByDescending != null) { if (pagination.OrderBy != null) { result = result.OrderBy(pagination.OrderBy); } else { result = result.OrderByDescending(pagination.OrderByDescending); } } return(result.Skip(pagination.PageIndex * pagination.PageSize).Take(pagination.PageSize).ToList()); }
public virtual ServiceResult <T> UpdateRange(params T[] items) { foreach (var item in items) { var itemResult = Validate(item); if (itemResult.HasViolation) { return(itemResult); } var editor = item as EditorEntity; if (editor != null) { if (ApplicationContext.CurrentUser != null) { editor.LastUpdateBy = ApplicationContext.CurrentUser.UserID; editor.LastUpdateByName = ApplicationContext.CurrentUser.UserName; } editor.LastUpdateDate = DateTime.Now; } } CurrentDbSet.UpdateRange(items); if (!isWaitingSave) { SaveChanges(); } return(new ServiceResult <T>()); }
public void UpdateDesign(LayoutEntity item) { CurrentDbSet.Attach(item); DbContext.Entry(item).Property(m => m.ContainerClass).IsModified = true; DbContext.SaveChanges(); if (item.Zones != null) { var zones = ZoneService.Get(m => m.LayoutId == item.ID); item.Zones.Where(m => zones.All(n => n.ID != m.ID)).Each(m => { m.LayoutId = item.ID; ZoneService.Add(m); }); item.Zones.Where(m => zones.Any(n => n.ID == m.ID)).Each(m => { m.LayoutId = item.ID; ZoneService.Update(m); }); zones.Where(m => item.Zones.All(n => n.ID != m.ID)).Each(m => ZoneService.Remove(m.ID)); } if (item.Html != null) { LayoutHtmlService.Remove(m => m.LayoutId == item.ID); item.Html.Each(m => { m.LayoutId = item.ID; LayoutHtmlService.Add(m); }); } }
public Task <List <FileData> > GetByGroup(string shopId, string groupId, out int total, int pageSize = 20, int pageIndex = 1) { total = 0; if (!string.IsNullOrEmpty(groupId) && groupId != "-1") { return(GetPageAsync(f => f.GroupId == groupId && f.ShopId == shopId, f => f.VersionDateTime, pageIndex, pageSize, out total)); } else { StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.Append(" SELECT * FROM FileData WHERE NOT EXISTS "); sqlBuilder.Append(" (SELECT GroupId FROM FileGroup WHERE FileGroup.Id = FileData.GroupId AND FileGroup.ShopId = @shopId) "); sqlBuilder.Append(" AND FileData.ShopId = @shopId "); List <MySqlParameter> sqlParams = new List <MySqlParameter>(); sqlParams.Add(new MySqlParameter("shopId", shopId)); total = CurrentDbSet.FromSql(sqlBuilder.ToString(), sqlParams.ToArray()).CountAsync().Result; sqlBuilder.Append(" ORDER BY FileData.VersionDateTime DESC "); sqlBuilder.Append($" LIMIT {(pageIndex - 1) * pageSize}, {pageSize} "); return(CurrentDbSet.FromSql(sqlBuilder.ToString(), sqlParams.ToArray()).ToListAsync()); } }
public async Task <Event> GetByIdWithIncludedRoomsAndMatches(string id) => await CurrentDbSet .Include(x => x.Rooms) .ThenInclude(x => x.Matches) .Include(x => x.Rooms) .ThenInclude(x => x.SportType) .FirstOrDefaultAsync(x => x.Id == id);
public async Task <bool> DeleteAndAddSKU(List <GoodInfoSKU> skuList) { bool res = false; using (IDbContextTransaction transaction = Database.BeginTransaction(IsolationLevel.ReadCommitted)) { try { List <GoodInfoSKU> removeList = await CurrentDbSet .Where(sku => sku.ShopId == skuList[0].ShopId && sku.GoodInfoId == skuList[0].GoodInfoId) .ToListAsync(); CurrentDbSet.RemoveRange(removeList); await CurrentDbSet.AddRangeAsync(skuList); SaveChanges(); transaction.Commit(); res = true; } catch { transaction.Rollback(); res = false; } } return(res); }
public async Task <PageDataDTO <List <Order> > > GetByFilter(string shopId, string menberId, int orderStatus, int pageSize, int pageIndex) { IQueryable <Order> query = CurrentDbSet.Where(c => c.ShopId == shopId); if (!string.IsNullOrEmpty(menberId)) { query = query.Where(c => c.MemberId == menberId); } if (orderStatus >= 0 && orderStatus <= 5) { query = query.Where(c => c.OrderStatus == orderStatus); } int count = await query.CountAsync(); if (pageSize > 0) { query = query.Skip(pageSize * (pageIndex - 1)).Take(pageSize); } return(new PageDataDTO <List <Order> > { Total = count, Data = await query.OrderBy(g => g.CreateTime).ToListAsync() }); }
public virtual ServiceResult <T> Update(T item, bool saveImmediately = true) { var result = Validate(item); if (result.HasViolation) { return(result); } var editor = item as EditorEntity; if (editor != null) { if (ApplicationContext.CurrentUser != null) { editor.LastUpdateBy = ApplicationContext.CurrentUser.UserID; editor.LastUpdateByName = ApplicationContext.CurrentUser.UserName; } editor.LastUpdateDate = DateTime.Now; } CurrentDbSet.Update(item); if (saveImmediately) { DbContext.SaveChanges(); } return(result); }
public PageEntity GetByPath(string path, bool isPreView) { if (path != "/" && path.EndsWith("/")) { path = path.Substring(0, path.Length - 1); } if (path == "/") { path = "/index"; } if (!path.StartsWith("~")) { path = "~" + path; } var result = CurrentDbSet.AsNoTracking() .Where(m => m.Url == path && m.IsPublishedPage == !isPreView) .OrderByDescending(m => m.PublishDate) .FirstOrDefault(); //if (result != null && result.ExtendFields != null) //{ // /*! // * http://www.zkea.net/ // * Copyright 2017 ZKEASOFT // * http://www.zkea.net/licenses // */ // ((List<ExtendFieldEntity>)result.ExtendFields).Add(new ExtendFieldEntity { Title = "meta_support", Value = "ZKEASOFT" }); //} return(result); }
public void Save(T entity) { //TODO: provisório tentar achar uma forma mais eficiente para colocar no contexto, se for uma importação if (entity.Id == 0) { CurrentDbSet.Add(entity); } else { var entry = GetDbContext.ChangeTracker.Entries().FirstOrDefault(x => ((ILGTEntity)x.Entity).Id == entity.Id); if (entry != null) { var concretType = entity.GetType(); var propertysToClone = concretType.GetProperties().Where(x => !x.PropertyType.IsNested && x.CanWrite).ToList(); foreach (var p in propertysToClone) { p.SetValue(entry.Entity, p.GetValue(entity, new object[0]), new object[0]); } } else { GetDbContext.Entry(entity).State = EntityState.Modified; } } this.SaveChanges(); }
public void SaveSort(SectionContent content) { var contentPart = content.ToContent(); CurrentDbSet.Attach(contentPart); DbContext.Entry(contentPart).Property(n => n.Order).IsModified = true; DbContext.SaveChanges(); }
public virtual void RemoveRange(params T[] items) { CurrentDbSet.RemoveRange(items); if (!isWaitingSave) { SaveChanges(); } }
public virtual void Remove(Expression <Func <T, bool> > filter) { CurrentDbSet.RemoveRange(CurrentDbSet.Where(filter)); if (!isWaitingSave) { SaveChanges(); } }
public virtual void Remove(T item) { CurrentDbSet.Remove(item); if (!isWaitingSave) { SaveChanges(); } }
public async Task <Match> GetMatchWithIncludedRoomEventModeratorsJoinObject(string id) { return(await CurrentDbSet .Include(x => x.Room) .ThenInclude(x => x.Event) .ThenInclude(x => x.Moderators) .FirstOrDefaultAsync(x => x.Id == id)); }
public virtual IEnumerable <T> Get(Expression <Func <T, bool> > filter) { if (filter == null) { return(GetAll()); } return(CurrentDbSet.Where(filter)); }
public virtual void Remove(T item, bool saveImmediately = true) { CurrentDbSet.Remove(item); if (saveImmediately) { DbContext.SaveChanges(); } }
public virtual int Count(Expression <Func <T, bool> > filter) { if (filter != null) { return(CurrentDbSet.Where(filter).Count()); } return(CurrentDbSet.Count()); }
/// <summary> /// 添加商品信息 /// </summary> /// <param name="goodInfo">基本信息</param> /// <param name="goodInfoExtensions">扩展信息</param> public async Task <DataResult> AddGoodInfo(GoodInfo goodInfo, GoodInfoExtensions goodInfoExtensions, List <GoodInfoSKU> skuList) { ShopInfoExtensions shopInfoExtensions = await shopInfoExtensionsDbSet.FirstOrDefaultAsync(sh => sh.ShopId == goodInfo.ShopId); int goodCount = await CurrentDbSet.CountAsync(gr => gr.ShopId == goodInfo.ShopId); if (goodCount >= shopInfoExtensions.LimitGoodNum) { return new DataResult { Code = DataResultCode.Fail, Message = $"最多只能拥有{shopInfoExtensions.LimitGoodNum}个商品!" } } ; using (IDbContextTransaction transaction = Database.BeginTransaction(IsolationLevel.ReadCommitted)) { try { await CurrentDbSet.AddAsync(goodInfo); await goodInfoExtensionsDbSet.AddAsync(goodInfoExtensions); await goodInfoSKUDbSet.AddRangeAsync(skuList); string sql = $"update ShopInfoExtensions set GoodDataVersion = @newVersion where shopId = @shopId and GoodDataVersion = @oldVersion"; int result = this.Database.ExecuteSqlCommand(sql, new[] { new MySqlParameter("newVersion", Guid.NewGuid().ToString("N")), new MySqlParameter("oldVersion", shopInfoExtensions.GoodDataVersion), new MySqlParameter("shopId", shopInfoExtensions.ShopId), }); if (result <= 0) { transaction.Rollback(); return(new DataResult { Code = DataResultCode.Fail, Message = "添加失败,请重试!" }); } SaveChanges(); transaction.Commit(); } catch { transaction.Rollback(); return(new DataResult { Code = DataResultCode.Fail, Message = "添加失败,请重试!" }); } } return(new DataResult { Code = DataResultCode.Success, Message = "添加成功!" }); }
/// <summary> /// 根据省份获取城市 /// </summary> /// <param name="Id"></param> /// <returns></returns> public PagerEntity <AreaEntity> QueryCityByProvinceAsync(string Id) { var entity = CurrentDbSet.Where(it => it.ParentId == Id); return(new PagerEntity <AreaEntity> { Entity = entity.ToList() }); }
public IEnumerable <ZoneEntity> GetZonesByPageId(string pageId) { var page = PageService.Get(pageId); using (var layoutService = _serviceProvder.GetService <ILayoutService>()) { var layout = layoutService.Get(page.LayoutId); return(CurrentDbSet.Where(m => m.LayoutId == layout.ID).OrderBy(m => m.ID).ToList()); } }
/// <summary> /// DeleteSession /// </summary> /// <param name="userId">The user identifier.</param> /// <returns></returns> public long DeleteSession(long userId) { var exists = GetSession(userId); if (exists == null) { return(-1); } return(CurrentDbSet.Remove(exists).Id); }
public virtual IEnumerable <T> Get(Expression <Func <T, bool> > filter, Pagination pagination) { pagination.RecordCount = Count(filter); if (filter != null) { return(CurrentDbSet.Where(filter).Skip(pagination.PageIndex * pagination.PageSize).Take(pagination.PageSize)); } else { return(CurrentDbSet.Skip(pagination.PageIndex * pagination.PageSize).Take(pagination.PageSize)); } }
/// <summary> /// Creates new user and Person Record and returns auto-generated UserId /// </summary> /// <param name="newUser">The new user.</param> /// <returns></returns> /// <exception cref="System.NotImplementedException"></exception> public int CreateNewUser(User newUser) { var result = -1; var added = CurrentDbSet.Add(newUser); if (!added.IsNull()) { result = CurrentDbContext.SaveChanges(); } return(result); }
public virtual void Add(T item) { var editor = item as EditorEntity; if (editor != null && ApplicationContext.CurrentUser != null) { editor.CreateBy = ApplicationContext.CurrentUser.UserID; editor.CreatebyName = ApplicationContext.CurrentUser.UserName; editor.CreateDate = DateTime.Now; } CurrentDbSet.Add(item); DbContext.SaveChanges(); }
public void Remove(Model m) { try { CurrentDbSet.Remove(m); } catch (Exception ex) { Report.Notify(new RCM.Message(Codes.ERR_DB_REMOVE) { DetailedText = ex.ToString() }); } }