public virtual void Insert(TEntityDto entityDto) { try { if (WcfCurrentContext.IsAuthenticated) { UserIdentity currentUser = WcfCurrentContext.CurrentUser; var perId = int.Parse(currentUser.UserId); AssemblyReflector.SetValue(entityDto, "InsertPerId", perId); } AssemblyReflector.SetValue(entityDto, "InsertDate", DateTime.Now); TEntity entity = CurrentRepository.Create(entityDto); CurrentRepository.SaveChanges(); object id = AssemblyReflector.GetValue(entity, entityDto.PrimaryKeyName); AssemblyReflector.SetValue(entityDto, entityDto.PrimaryKeyName, id); entityDto.State = DtoObjectState.Inserted; } catch (Exception ex) { entityDto.State = DtoObjectState.Ignore; entityDto.Response.AddBusinessException(new Framework.Common.Service.Message.BusinessExceptionDto(Framework.Common.Service.Message.BusinessExceptionEnum.Operational, "در ورود اطلاعات به دیتابیس مشکل بوجود آمد!", ex.Message, ex.StackTrace)); ex.Data.Add("type", "db"); throw ex; } }
public virtual void Insert(List <TEntityDto> entityDtoList) { // using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { try { List <TEntity> insertedList = new List <TEntity>(); foreach (var entityDto in entityDtoList) { if (WcfCurrentContext.IsAuthenticated) { UserIdentity currentUser = WcfCurrentContext.CurrentUser; var perId = int.Parse(currentUser.UserId); AssemblyReflector.SetValue(entityDto, "InsertPerId", perId); } AssemblyReflector.SetValue(entityDto, "InsertDate", DateTime.Now); TEntity entity = CurrentRepository.Create(entityDto); insertedList.Add(entity); } CurrentRepository.SaveChanges(); // scope.Complete(); if (insertedList.Count == entityDtoList.Count) { int index = 0; foreach (var entityDto in entityDtoList) { var entity = insertedList[index++]; object id = AssemblyReflector.GetValue(entity, entityDto.PrimaryKeyName); AssemblyReflector.SetValue(entityDto, entityDto.PrimaryKeyName, id); entityDto.State = DtoObjectState.Inserted; } } } catch (Exception ex) { foreach (var entityDto in entityDtoList) { entityDto.State = DtoObjectState.Ignore; entityDto.Response.AddBusinessException(new Framework.Common.Service.Message.BusinessExceptionDto(Framework.Common.Service.Message.BusinessExceptionEnum.Operational, "در ورود اطلاعات به دیتابیس مشکل بوجود آمد!", ex.Message, ex.StackTrace)); } ex.Data.Add("type", "db"); throw ex; } } }
public void Create(object obj) { QueryInfo info = new QueryInfo(); CurrentRepository.Create(GenerateCreateQuery(obj)); }