/// <summary>
        /// Saves the provider.
        /// </summary>
        /// <param name="provider">The provider.</param>
        /// <returns></returns>
        public async Task <int> SaveProvider(EntityProvider provider)
        {
            provider.Id = UtilsService.GenerateId(provider.Id);

            return(await Util.TryAsync(() => GetConnection().InsertOrReplaceAsync(provider),
                                       failureMessage : "DataContext failed to SAVE EntityProvider"));
        }
Пример #2
0
 static void provider_OnCompleted(string key, EntityProvider provider)
 {
     lock (_obj)
     {
         EPDic[key].Enqueue(provider);
     }
 }
            public Variable first, second; //One of these is an amount (nullable), other must be ItemFilter (non nullable)

            public TransferItemCommand(EntityProvider from, EntityProvider to, Variable first, Variable second)
            {
                this.from   = from;
                this.to     = to;
                this.first  = first;
                this.second = second;
            }
Пример #4
0
        /// <summary>
        /// Elimina aggregato (fascicolo) - Elimina anche tutti i riferimenti alle DocumentiUnit aggregate.
        /// </summary>
        /// <param name="idAggregate">Chiave aggregato</param>
        /// <returns>N. di rercord complessivamente eliminati</returns>
        public static int UdsDeleteDocumentUnitAggregate(Guid idAggregate)
        {
            EntityProvider provider = DbProvider;

            using (DbTransaction tran = provider.BeginNoSave())
            {
                try
                {
                    provider.UdsDeleteDocumentUnitAggregateChain(idAggregate);
                    provider.UdsDeleteDocumentUnitAggregate(idAggregate);

                    int count = provider.SaveChanges();
                    tran.Commit();
                    return(count);
                }
                catch
                {
                    try
                    {
                        tran.Rollback();
                    }
                    catch
                    {
                    }
                    throw;
                }
            }
        }
Пример #5
0
 public AggregatePropertyVariable(PropertyAggregate aggregationType, EntityProvider entityProvider, PropertySupplier property, Direction?direction)
 {
     this.aggregationType = aggregationType;
     this.entityProvider  = entityProvider;
     this.property        = property;
     this.direction       = direction;
 }
Пример #6
0
        /// <summary>
        /// Aggiunge una nuova DocumentUnit e collega i documenti collegati passati
        /// </summary>
        /// <param name="unit">DocumentUnit da inserire</param>
        /// <param name="documents">Elenco dei riferimenti ai documenti da collegare</param>
        /// <returns>DocumentUnit creata</returns>
        public static DocumentUnit UdsAddDocumentUnitWithDocuments(DocumentUnit unit, DocumentUnitChain[] documents)
        {
            EntityProvider provider = DbProvider;

            using (DbTransaction tran = provider.BeginNoSave())
            {
                try
                {
                    var unitRes = provider.UdsAddDocumentUnit(unit);
                    if (unitRes != null)
                    {
                        provider.UdsDocumentUnitAddDocuments(unitRes.IdDocumentUnit, documents, false);
                    }

                    provider.SaveChanges();
                    tran.Commit();
                    return(unitRes);
                }
                catch
                {
                    try
                    {
                        tran.Rollback();
                    }
                    catch
                    {
                    }
                    throw;
                }
            }
        }
        public override void Update(string compId)
        {
            if (this.UsePortal())
            {
                EntityProvider.UpdateEntityList <PartnerItemXref>(this);
                return;
            }

            try
            {
                StartSession();
                this.Items.EnlistTransaction(this.TransMan);
                //persist detail records
                foreach (PartnerItemXref PartnerItemXref in this.Items.ChangedItems)
                {
                    if (PartnerItemXref.IsValid)
                    {
                        //  PartnerItemXref.PriorityCodeDetailList.DeletedItems.Clear();
                    }
                }


                base.Update(compId);
            }
            catch
            {
                StopSession(true);
                throw;
            }
            finally
            {
                StopSession();
            }
        }
Пример #8
0
        private void btnTest_Click(object sender, EventArgs e)
        {
            WikibaseApi api = new WikibaseApi("https://test.wikidata.org", "TambonBot");

            var entityProvider = new EntityProvider(api);
            var item           = entityProvider.getEntityFromId(new EntityId("Q42")) as Item;
        }
Пример #9
0
 public ConverterBase(EntityProvider <TEntityType> entityProvider,
                      PropertyCopier propertyCopier,
                      VirtualWorkDatabaseContext virtualWorkDatabaseContext)
 {
     this.entityProvider        = entityProvider;
     this.propertyCopier        = propertyCopier;
     VirtualWorkDatabaseContext = virtualWorkDatabaseContext;
 }
Пример #10
0
 public LicenseConverter(EntityProvider <EntityType> entityProvider,
                         UserRepository userRepository,
                         PropertyCopier propertyCopier,
                         VirtualWorkDatabaseContext virtualWorkDatabaseContext)
     : base(entityProvider, propertyCopier, virtualWorkDatabaseContext)
 {
     this.userRepository = userRepository;
 }
Пример #11
0
 public GroupConverter(EntityProvider <EntityType> entityProvider,
                       PermissionConverter permissionConverter,
                       PropertyCopier propertyCopier,
                       VirtualWorkDatabaseContext virtualWorkDatabaseContext)
     : base(entityProvider, propertyCopier, virtualWorkDatabaseContext)
 {
     this.permissionConverter = permissionConverter;
 }
Пример #12
0
 public ServerConverter(EntityProvider <EntityType> entityProvider,
                        CameraConverter cameraConverter,
                        PropertyCopier propertyCopier,
                        VirtualWorkDatabaseContext virtualWorkDatabaseContext)
     : base(entityProvider, propertyCopier, virtualWorkDatabaseContext)
 {
     this.cameraConverter = cameraConverter;
 }
 protected static void InitBase(EntityProvider provider, bool executeQueries = false, string baseLineFileName = null)
 {
     lock (gate)
     {
         _provider = provider;
         _executeQueries = executeQueries;
         _baseLinePath = baseLineFileName;
         _newBaseLinePath = string.IsNullOrEmpty(baseLineFileName) ? null : Path.ChangeExtension(baseLineFileName, "new");
     }
 }
Пример #14
0
 public IssueHistoryConverter(EntityProvider <EntityType> entityProvider,
                              IssueRepository issueRepository,
                              UserRepository userRepository,
                              PropertyCopier propertyCopier,
                              VirtualWorkDatabaseContext virtualWorkDatabaseContext)
     : base(entityProvider, propertyCopier, virtualWorkDatabaseContext)
 {
     this.issueRepository = issueRepository;
     this.userRepository  = userRepository;
 }
Пример #15
0
 public EntityImageConverter(EntityProvider <EntityType> entityProvider,
                             UserRepository userRepository,
                             ResourceRepository resourceRepository,
                             PropertyCopier propertyCopier,
                             VirtualWorkDatabaseContext virtualWorkDatabaseContext)
     : base(entityProvider, propertyCopier, virtualWorkDatabaseContext)
 {
     this.userRepository     = userRepository;
     this.resourceRepository = resourceRepository;
 }
        public CheckSearchParametersTests()
        {
            var translatorMock = new Mock <ITranslator>();

            translatorMock.Setup(f => f.GetTranslation("de", "search.termToShort", It.IsAny <string>()))
            .Returns("search.termToShort");
            translatorMock.Setup(f => f.GetTranslation("de", "search.termToShortForAll", It.IsAny <string>()))
            .Returns("search.termToShortForAll");

            entityProvider = new EntityProvider(translatorMock.Object, null, null, null);
        }
Пример #17
0
            public void PreParseCommands(List <CommandParameter> commandParameters)
            {
                extract <ActionCommandParameter>(commandParameters);//Extract and ignore
                SelectorCommandParameter selector = extractFirst <SelectorCommandParameter>(commandParameters);

                if (selector == null)
                {
                    throw new Exception("SelectorCommandParameter is required for command: " + GetType());
                }
                blockHandler   = BlockHandlerRegistry.GetBlockHandler(selector.Value.GetBlockType());
                entityProvider = selector.Value;
            }
Пример #18
0
        public ItemProvider(ItemProviderSettings settings, TypeManager typeManager, ILogWriter log)
        {
            var entityProviderLog = log.NewRegion(nameof(EntityProvider));
            var pool        = new PostgreSqlConnectionPool(settings.PostgreSqlConnectionString, settings.MaxConnections, settings.Timeout);
            var sqlProvider = new PostgreSqlProvider(pool, entityProviderLog.NewRegion("PostgreSQL"), settings.Schema);

            sqlProvider.EnsureSchemaExists();

            this.provider = new EntityProvider(sqlProvider, entityProviderLog);
            this.log      = log;
            this.context  = new ItemContext(typeManager);
        }
        protected override void UpdateData(int index)
        {
            try
            {
                if (index < 0)
                {
                    //persist delete operation
                    if (_provider.Items.IsDeletedCount > 0)
                    {
                        _provider.Update(this.CompId);
                    }
                }
                else
                {
                    //persist add/edit operations
                    if (_provider[index].IsDirty)
                    {
                        //validate the item
                        _provider[index].Validate();

                        //if valid, update the database
                        if (_provider[index].IsValid)
                        {
                            _provider.Update(this.CompId);
                        }
                    }
                    //clear error
                    _provider[index].SetErrorText(null);
                }
            }
            catch (ProviderException pex)
            {
                if (index > -1)
                {
                    _provider[index].SetErrorText(pex.Message);
                }
                ClientContext.HandleError(pex, this);
            }
            catch (Exception ex)
            {
                ClientContext.HandleError(ex, this);
            }
            finally
            {
                if (_provider.Items.IsDeletedCount > 0)
                {
                    _provider.Items.AddRange(_provider.Items.DeletedItems);
                    _provider.Items.DeletedItems.Clear();
                    this.BindingSource.ResetBindings(false);
                }
                EntityProvider.InvalidateLookupObject("PartnerItemXref");
            }
        }
        public BaseResponse UpdateProvider(EntityProvider provider)
        {
            var returnEntity = new BaseResponse();
            var entityUser   = new EntityLoginResponse();
            var resu         = new EntityProvider();

            try
            {
                using (var db = GetSqlConnection())
                {
                    const string sql = "update_provider";
                    var          p   = new DynamicParameters();
                    p.Add(name: "@Ruc", value: provider.ruc, dbType: DbType.String, direction: ParameterDirection.Input);
                    p.Add(name: "@NomEmp", value: provider.name, dbType: DbType.String, direction: ParameterDirection.Input);
                    p.Add(name: "@Distrito", value: provider.district, dbType: DbType.String, direction: ParameterDirection.Input);
                    p.Add(name: "@Direccion", value: provider.address, dbType: DbType.String, direction: ParameterDirection.Input);
                    p.Add(name: "@NomRepresent", value: provider.firtsname_representative, dbType: DbType.String, direction: ParameterDirection.Input);
                    p.Add(name: "@ApeRepresent", value: provider.lastname_representative, dbType: DbType.String, direction: ParameterDirection.Input);
                    p.Add(name: "@idprovider", dbType: DbType.Int32, direction: ParameterDirection.Output);


                    resu = db.Query <EntityProvider>(sql, param: p, commandType: CommandType.StoredProcedure).FirstOrDefault();

                    int idprovider = p.Get <int>("@idprovider");


                    if (idprovider > 0)
                    {
                        returnEntity.isSuccess    = true;
                        returnEntity.errorCode    = "0000";
                        returnEntity.errorMessage = string.Empty;
                        returnEntity.data         = idprovider;
                    }
                    else
                    {
                        returnEntity.isSuccess    = false;
                        returnEntity.errorCode    = "0000";
                        returnEntity.errorMessage = string.Empty;
                        returnEntity.data         = idprovider;
                    }
                }
            }
            catch (Exception ex)
            {
                returnEntity.isSuccess    = false;
                returnEntity.errorCode    = "0001";
                returnEntity.errorMessage = ex.Message;
                returnEntity.data         = null;
            }

            return(returnEntity);
        }
Пример #21
0
        public override Dictionary <string, DataSet> Execute(string filter, Status status)
        {
            Dictionary <string, DataSet> results;

            this._status = status;
            try
            {
                base.StartPrivateSession();
                //BuildJournalList(filter, this.CompId, base.TransMan);
                Dictionary <string, object> parameters = new Dictionary <string, object>();
                //Date gg = Convert.Date(Convert.ToString(frmArContribTrialBalControl._from).Substring(0,9).Trim());
                //       parameters.Add("@PmtDateFrom", "3/1/14");
                //parameters.Add("@PmtDateThru", Convert.ToString(frmArContribTrialBalControl._thru).Substring(0,9).Trim());
                parameters.Add("@PmtDateThru", frmArContribTrialBalControl._thru);
                //parameters.Add("@PrintOption", this.PrintOption);
                //parameters.Add("@SortOption", this.SortOption);
                //parameters.Add("@SortOrder", this.SortOrder);
                //parameters.Add("@ReportCurrency", this.ReportCurrency);
                //if (Convert.ToInt32(frmArGroupStatisticRptControl.selection.EditValue) == 1)
                if (frmArContribTrialBalControl._selection == 1)
                {
                    set = EntityProvider.ExecuteCommand("trav_ARContribTrialBalanceArea_proc_CSI", this.CompId, true, parameters, base.TransMan);
                }
                else if (frmArContribTrialBalControl._selection == 2)
                {
                    set = EntityProvider.ExecuteCommand("trav_ARContribTrialBalanceCitySt_proc_CSI", this.CompId, true, parameters, base.TransMan);
                }
                else
                {
                    set = null;
                }
                for (int i = 0; i < set.Tables.Count; i++)
                {
                    DataSet   set2  = new DataSet("MainDataset");
                    DataTable table = set.Tables[i].Copy();
                    set2.Tables.Add(table);
                    this.Results.Add(i.ToString(), set2);
                }
                results = this.Results;
            }
            catch (Exception exception)
            {
                base.StopPrivateSession(true);
                throw exception;
            }
            finally
            {
                base.StopPrivateSession(false);
            }
            return(results);
        }
Пример #22
0
 public UserConverter(GroupConverter groupConverter,
                      EmailRepository emailRepository,
                      TelephoneNumberRepository telephoneNumberRepository,
                      AddressRepository addressRepository,
                      EntityProvider <EntityType> entityProvider,
                      PropertyCopier propertyCopier,
                      VirtualWorkDatabaseContext virtualWorkDatabaseContext)
     : base(entityProvider, propertyCopier, virtualWorkDatabaseContext)
 {
     this.emailRepository           = emailRepository;
     this.telephoneNumberRepository = telephoneNumberRepository;
     this.addressRepository         = addressRepository;
     this.groupConverter            = groupConverter;
 }
Пример #23
0
        /// <summary>
        /// Sets the address.
        /// </summary>
        /// <param name="streets">The streets.</param>
        /// <param name="name">The name.</param>
        /// <param name="entity">The entity.</param>
        private static void SetAddress(List <EntityStreet> streets, string name, ref EntityProvider entity)
        {
            var str  = streets[UtilsService.RandomNumber(0, streets.Count - 1)];
            var sub  = _suburbList.FirstOrDefault(c => c.Id == str.SuburbId);
            var town = _townList.FirstOrDefault(c => c.Id == sub.TownId);
            var prov = _provinceList.FirstOrDefault(c => c.Id == town.ProvinceId);

            entity.StreetId = str.Id;
            entity.House    = name;
            entity.Street   = str.Name;
            entity.Suburb   = sub.Name;
            entity.Town     = town.Name;
            entity.Province = prov.Name;
            entity.Country  = prov.Country;
        }
        public BaseResponse SearchById(int id)
        {
            var returnEntity = new BaseResponse();
            var provider     = new EntityProvider();

            try
            {
                using (var db = GetSqlConnection())
                {
                    const string sql = "search_provider";
                    var          p   = new DynamicParameters();
                    //p.Add(name: "@userid", dbType: DbType.Int32, direction: ParameterDirection.Output);
                    p.Add(name: "@id", value: id, dbType: DbType.Int32, direction: ParameterDirection.Input);
                    //p.Add(name: "@email", value: user.email, dbType: DbType.String, direction: ParameterDirection.Input);
                    //p.Add(name: "@password", value: user.password, dbType: DbType.String, direction: ParameterDirection.Input);
                    //p.Add(name: "@perfil", value: user.role, dbType: DbType.String, direction: ParameterDirection.Input);
                    //p.Add(name: "@user_create", value: user.UsuarioCrea, dbType: DbType.Int32, direction: ParameterDirection.Input);


                    provider = db.Query <EntityProvider>(sql, param: p, commandType: CommandType.StoredProcedure).FirstOrDefault();
                    //int IdUsuario = p.Get<int>("@userid");

                    if (provider != null)
                    {
                        returnEntity.isSuccess    = true;
                        returnEntity.errorCode    = "0000";
                        returnEntity.errorMessage = string.Empty;
                        returnEntity.data         = provider;
                    }
                    else
                    {
                        returnEntity.isSuccess    = false;
                        returnEntity.errorCode    = "0000";
                        returnEntity.errorMessage = string.Empty;
                        returnEntity.data         = null;
                    }
                }
            }
            catch (Exception ex)
            {
                returnEntity.isSuccess    = false;
                returnEntity.errorCode    = "0001";
                returnEntity.errorMessage = ex.Message;
                returnEntity.data         = null;
            }
            return(returnEntity);
        }
Пример #25
0
        /// <summary>
        /// Counts the links to the various Wikimedia projects.
        /// </summary>
        /// <param name="entities">Entities to check.</param>
        /// <returns>Number of sitelinks by name of the wiki.</returns>
        public Dictionary <String, Int32> CountSiteLinks(IEnumerable <Entity> entities, StringBuilder collisionData)
        {
            var result = new Dictionary <String, Int32>();

            result["Orphan"]  = 0;
            result["Deleted"] = 0;
            // Create a new EntityProvider instance and pass the api created above.
            EntityProvider entityProvider = new EntityProvider(_helper.Api);

            foreach (var entity in entities)
            {
                // Get an entity by searching for the id
                var item = _helper.GetWikiDataItemForEntity(entity);
                if (item != null)
                {
                    var links = item.getSitelinks();
                    if (!links.Any())
                    {
                        result["Orphan"]++;
                        if (collisionData != null)
                        {
                            collisionData.AppendFormat("Orphan: {0} - {1} ({2})", entity.wiki.wikidata, entity.english, entity.geocode);
                            collisionData.AppendLine();
                        }
                    }

                    foreach (var key in links.Keys)
                    {
                        if (!result.ContainsKey(key))
                        {
                            result[key] = 0;
                        }
                        result[key]++;
                    }
                }
                else
                {
                    result["Deleted"]++;
                    if (collisionData != null)
                    {
                        collisionData.AppendFormat("Deleted: {0} - {1} ({2})", entity.wiki.wikidata, entity.english, entity.geocode);
                        collisionData.AppendLine();
                    }
                }
            }
            return(result);
        }
Пример #26
0
        /// <summary>
        /// Gets the providers.
        /// </summary>
        /// <returns></returns>
        internal static async Task <List <EntityProvider> > GetProviders()
        {
            if (_providers == null)
            {
                _providers = new List <EntityProvider>();
            }

            if (_providers.Count == 0)
            {
                var streets = await GetStreets();

                var dto1 = new EntityProvider();
                dto1.Id            = UtilsService.GenerateId(dto1.Id);
                dto1.Name          = "MultiChoice South Africa";
                dto1.ContactPerson = "Sales Team";
                dto1.EmailAddress  = "*****@*****.**";
                dto1.PhoneNumber   = "+27 21 508 1234";
                dto1.MobileNumber  = null;
                dto1.WebAddress    = "http://www.multichoice.co.za";
                dto1.IsFavourite   = false;

                SetAddress(streets, "15, DStv House", ref dto1);
                _providers.Add(dto1);

                var dto2 = new EntityProvider();
                dto2.Id            = UtilsService.GenerateId(dto2.Id);
                dto2.Name          = "MultiChoice Africa";
                dto2.ContactPerson = "Sales Manager";
                dto2.EmailAddress  = "*****@*****.**";
                dto2.PhoneNumber   = "+27 11 218 2342";
                dto2.MobileNumber  = "+27 82 131 3893";
                dto2.WebAddress    = "http://www.multichoice.co.za";
                dto2.IsFavourite   = false;

                SetAddress(streets, "64, Africa House", ref dto2);
                _providers.Add(dto2);
            }

            using (var db = new MancobaLocalDataApi(ConnectionFactory, PlatformCapabilities))
            {
                var response = await db.SaveProvider(_providers);
            }

            return(_providers.OrderBy(c => c.Name).ToList());
        }
Пример #27
0
        private static void ConvertArchiveConservationEnabled(DocumentArchive archive)
        {
            EntityProvider         currentProvider   = DbProvider;
            ICollection <Document> toUpdateDocuments = currentProvider.GetPreservationDocumentsNoDateMain(archive);

            currentProvider.BeginNoSaveNoTransaction();
            foreach (Document doc in toUpdateDocuments)
            {
                BindingList <DocumentAttributeValue> docAttributes = currentProvider.GetFullDocumentAttributeValues(doc.IdDocument);
                AttributeService.ParseAttributeValues(archive, docAttributes, out DateTime? mainDate);
                if (mainDate.HasValue)
                {
                    Guid mainDateAttributeId = docAttributes.Where(x => x.Attribute.IsMainDate == true).Single().IdAttribute;
                    doc.DateMain = mainDate;
                    currentProvider.UpdateDateMain(doc.IdDocument, mainDate);
                    logger.Info($"ConvertArchiveConservationEnabled -> IdDocument: {doc.IdDocument} - IdArchive: {archive.IdArchive} - MainDate attribute Id: {mainDateAttributeId} - MainDate value: {mainDate:dd/MM/yyyy HH:mm:ss}");
                }
            }
            currentProvider.SaveChanges();
        }
Пример #28
0
        public void BeforeEach()
        {
            var log = new CustomLogData(l => Debug.WriteLine(l));

            logwriter   = new RegionBasedLogWriter(log, "Spec");
            sqlProvider = new PostgreSqlProvider(connectionPool, logwriter.NewRegion(nameof(PostgreSqlProvider)), SCHEMA);
            sqlProvider.EnsureSchemaExists();

            typeManager = new TypeManager();
            typeManager.Register <DeviceType>();
            typeManager.Register <SensorType>();

            entityProvider = new EntityProvider(sqlProvider, logwriter.NewRegion(nameof(EntityProvider)));
            provider       = new ItemProvider(entityProvider, typeManager, logwriter.NewRegion(nameof(ItemProvider)));

            var tables = sqlProvider.GetTableNamesBySchema(SCHEMA);

            foreach (var table in tables)
            {
                sqlProvider.DropTable(table);
            }
        }
Пример #29
0
        public void AddEntity_Fail(EntityTypes type, bool IsHead)
        {
            //arrange
            var TargetTreeMember = CreateSampleTreeMember(type, IsHead);

            Mock <IDataService> DSM = new Mock <IDataService>();

            Mock <IRTree <IEntity> > RTM = new Mock <IRTree <IEntity> >();

            RTM.Setup(x => x.AddItem(It.IsAny <IEntity>(), IsHead)).Returns(TargetTreeMember);

            DSM.Setup(x => x.EntityTree).Returns(RTM.Object);

            Mock <IEntityFactory> EFM = new Mock <IEntityFactory>();

            EFM.Setup(x => x.CreateOrganization()).Returns(CreateSampleOrganization());
            EFM.Setup(x => x.CreateCharacter()).Returns(CreateSampleCharacter());

            IEntityProvider EP = new EntityProvider(new EventAggregator(), DSM.Object, EFM.Object);

            //assert // act
            Assert.ThrowsException <InvalidOperationException>(() => EP.AddEntity(type, IsHead));
        }
        /// <summary>
        /// To the model.
        /// </summary>
        /// <param name="entity">The entity.</param>
        /// <returns></returns>
        internal static ModelProvider ToModel(this EntityProvider entity)
        {
            var model = new ModelProvider();

            model.Id            = entity.Id;
            model.Name          = entity.Name;
            model.ContactPerson = entity.ContactPerson;
            model.EmailAddress  = entity.EmailAddress;
            model.PhoneNumber   = entity.PhoneNumber;
            model.MobileNumber  = entity.MobileNumber;
            model.WebAddress    = entity.WebAddress;
            model.IsFavourite   = entity.IsFavourite;

            model.StreetId = entity.StreetId;
            model.House    = entity.House;
            model.Street   = entity.Street;
            model.Suburb   = entity.Suburb;
            model.Town     = entity.Town;
            model.Province = entity.Province;
            model.Country  = entity.Country;

            return(model);
        }
Пример #31
0
        /// <summary>
        /// Elimina una document unit. Rimuove anche i riferimenti dei documenti alla DocumentUnit dalla tabella DocumentUnitChain
        /// </summary>
        /// <param name="idDocumentUnit"></param>
        /// <returns>Ritorna n. di record complessivamente eliminati</returns>
        public static int UdsDeleteDocumentUnit(Guid idDocumentUnit, bool detachDocuments = true)
        {
            EntityProvider provider = DbProvider;

            using (DbTransaction tran = provider.BeginNoSave())
            {
                try
                {
                    //detach dei documenti
                    if (detachDocuments)
                    {
                        var docChain = DbProvider.UdsGetUnitChain(idDocumentUnit);
                        foreach (var item in docChain)
                        {
                            DetachDocument(item.Document);
                        }
                    }

                    provider.UdsDeleteDocumentUnitChain(idDocumentUnit);
                    provider.UdsDeleteDocumentUnit(idDocumentUnit);
                    int count = provider.SaveChanges();
                    tran.Commit();
                    return(count);
                }
                catch
                {
                    try
                    {
                        tran.Rollback();
                    }
                    catch
                    {
                    }
                    throw;
                }
            }
        }
Пример #32
0
        public override Dictionary <string, DataSet> Execute(string filter, Status status)
        {
            Dictionary <string, DataSet> results;

            this._status = status; //Missing Definition
            try
            {
                base.StartPrivateSession();
                BuildBlanketOrderList(filter, this.CompId, base.TransMan);
                Dictionary <string, object> parameters = new Dictionary <string, object>();
                parameters.Add("@SortBy", this._sortBy); //Missing Definition
                parameters.Add("@PrintAllInBaseCurrency", this.PrintAllInBase);
                parameters.Add("@ReportCurrency", this.ReportCurrency);
                parameters.Add("@ExchRate", TRAVERSE.Business.Sys.Currency.GetExchangeRate(this.ReportCurrency, ApplicationContext.SessionDate));//TRAVERSE.Business.Sys.
                parameters.Add("@WksDate", ApplicationContext.SessionDate);
                DataSet set = EntityProvider.ExecuteCommand("dbo.trav_SoBlanketOrderReport_proc_CSI", this.CompId, true, parameters, base.TransMan);
                for (int i = 0; i < set.Tables.Count; i++)
                {
                    DataSet   set2  = new DataSet("MainDataset");
                    DataTable table = set.Tables[i].Copy();
                    set2.Tables.Add(table);
                    this.Results.Add(i.ToString(), set2);
                }
                results = this.Results;
            }
            catch (Exception exception)
            {
                base.StopPrivateSession(true);
                throw exception;
            }
            finally
            {
                base.StopPrivateSession(false);
            }
            return(results);
        }
        protected static void TestQuery(EntityProvider pro, Expression query, string testName, bool expectedToFail)
        {
            if (query.NodeType == ExpressionType.Convert && query.Type == typeof(object))
            {
                query = ((UnaryExpression)query).Operand; // remove box
            }

            if (pro.Log != null)
            {
                DbExpressionWriter.Write(pro.Log, query);
                pro.Log.WriteLine();
                pro.Log.WriteLine("==>");
            }

            string queryText = pro.GetQueryText(query);
            SetNewBaseLine(testName, queryText);

            if (_executeQueries)
            {
                object result = pro.Execute(query);
                IEnumerable seq = result as IEnumerable;
                if (seq != null)
                {
                    // iterate results
                    foreach (var item in seq)
                    {
                    }
                }
                else
                {
                    IDisposable disposable = result as IDisposable;
                    if (disposable != null)
                        disposable.Dispose();
                }
            }
            else if (pro.Log != null)
            {
                var text = pro.GetQueryText(query);
                pro.Log.WriteLine(text);
                pro.Log.WriteLine();
            }

            string expected = GetBaseLine(testName);
            if (expected != null)
            {
                string trimActual = TrimExtraWhiteSpace(queryText).Trim();
                string trimExpected = TrimExtraWhiteSpace(expected).Trim();
                Assert.AreEqual(trimExpected, trimActual);
            }
        }
Пример #34
0
        private long Save(EntityProvider provider)
        {
            bool isReuse = false;
            var entityProvider = GetProvider(provider, out isReuse);

            long id = 0;
            try
            {
                Type thisType = this.GetType();
                var attrs = thisType.GetCustomAttributes(typeof(EntityChildAttribute), false);
                if (attrs != null && attrs.Length > 0)
                {
                    #region 使用事务去保存该实体与其他相关实体

                    using (TransactionScope scope = new TransactionScope())
                    {
                        if (this.ID > 0)
                        {
                            id = this.ID;
                            entityProvider.ExcuteUpdate(this);
                        }
                        else
                        {
                            if (this.Collection.Count > 0)
                            {
                                id = entityProvider.ExcuteInsert(this);
                            }
                        }

                        if (attrs != null && attrs.Length > 0)
                        {
                            #region 保存外键关联表信息

                            foreach (EntityChildAttribute attr in attrs)
                            {
                                foreach (var pname in attr.PropertyNames)
                                {
                                    var pi = thisType.GetProperty(pname, BindingFlags.Instance | BindingFlags.Public | BindingFlags.IgnoreCase);
                                    if (pi == null)
                                    {
                                        continue;
                                    }

                                    var v = pi.GetValue(this);
                                    if (v == null)
                                    {
                                        continue;
                                    }

                                    var fkey = pi.GetCustomAttribute<FKeyAttribute>(false);
                                    if (attr is EntityChildrenAttribute)
                                    {
                                        #region Save EntityChildren

                                        var list = v as IList;
                                        foreach (EntityBase data in list)
                                        {
                                            if (data.ID == 0 && fkey != null && fkey.FKey != null && fkey.FKey.Length > 0)
                                            {
                                                data.SetDbValue(fkey.FKey, id);
                                            }
                                            data.Save(entityProvider);
                                        }

                                        #endregion
                                    }
                                    else
                                    {
                                        #region Save EntityChild

                                        var entity = v as EntityBase;
                                        if (entity.ID == 0 && fkey != null && fkey.FKey != null && fkey.FKey.Length > 0)
                                        {
                                            entity.SetDbValue(fkey.FKey, this.ID);
                                        }
                                        entity.Save(entityProvider);

                                        #endregion
                                    }
                                }
                            }

                            #endregion
                        }

                        scope.Complete();
                    }

                    #endregion
                }
                else
                {
                    #region 保存当前实体

                    if (this.ID > 0)
                    {
                        id = this.ID;
                        entityProvider.ExcuteUpdate(this);
                    }
                    else
                    {
                        if (this.Collection.Count > 0)
                        {
                            id = entityProvider.ExcuteInsert(this);
                        }
                    }

                    #endregion
                }
            }
            catch
            {
                throw;
            }
            finally
            {
                if (!isReuse)
                {
                    entityProvider.Close();
                }
            }

            if (this._id == 0 && id > 0)
            {
                this.ID = id;
            }

            return id;
        }
Пример #35
0
 public NorthwindX(EntityProvider provider)
 {
     this.provider = provider;
 }
Пример #36
0
 public NorthwindSession(EntityProvider provider)
     : this(new EntitySession(provider))
 {
 }
Пример #37
0
 internal EntityProvider GetProvider(EntityProvider provider, out bool isReuse)
 {
     return DbContext.GetEntityProvider(provider, this.GetType(), out isReuse);
 }
Пример #38
0
        protected void TestQuery(EntityProvider pro, Expression query, bool expectedToFail)
        {
            if (query.NodeType == ExpressionType.Convert && query.Type == typeof(object))
            {
                query = ((UnaryExpression)query).Operand; // remove box
            }

            this.queryText = null;
            this.queryText = pro.GetQueryText(query);
            WriteBaseline(baselineKey, queryText);

            if (this.executeQueries)
            {
                Exception caught = null;
                try
                {
                    object result = pro.Execute(query);
                    IEnumerable seq = result as IEnumerable;
                    if (seq != null)
                    {
                        // iterate results
                        foreach (var item in seq)
                        {
                        }
                    }
                    else
                    {
                        IDisposable disposable = result as IDisposable;
                        if (disposable != null)
                            disposable.Dispose();
                    }
                }
                catch (Exception e)
                {
                    caught = e;

                    if (!expectedToFail)
                    {
                        throw new TestFailureException(e.Message + "\r\n\r\n" + queryText);
                    }
                }

                if (caught == null && expectedToFail)
                {
                    throw new InvalidOperationException("Query succeeded when expected to fail");
                }
            }

            string baseline = null;
            if (this.baselines != null && this.baselines.TryGetValue(this.baselineKey, out baseline))
            {
                string trimAct = TrimExtraWhiteSpace(queryText).Trim();
                string trimBase = TrimExtraWhiteSpace(baseline).Trim();
                if (trimAct != trimBase)
                {
                    throw new InvalidOperationException(string.Format("Query translation does not match baseline:\r\n    Expected: {0}\r\n    Actual  : {1}", trimBase, trimAct));
                }
            }

            if (baseline == null && this.baselines != null)
            {
                throw new InvalidOperationException("No baseline");
            }
        }
Пример #39
0
        protected void TestQuery(EntityProvider pro, Expression query, string baselineKey, bool expectedToFail)
        {
            ConsoleColor originalColor = Console.ForegroundColor;
            try
            {
                if (query.NodeType == ExpressionType.Convert && query.Type == typeof(object))
                {
                    query = ((UnaryExpression)query).Operand; // remove box
                }

                if (pro.Log != null)
                {
                    Console.ForegroundColor = ConsoleColor.Gray;
                    DbExpressionWriter.Write(pro.Log, pro.Language, query);
                    pro.Log.WriteLine();
                    pro.Log.WriteLine("==>");
                }

                string queryText = null;
                try
                {
                    queryText = pro.GetQueryText(query);
                    WriteBaseline(baselineKey, queryText);
                }
                catch (Exception e)
                {
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine(string.Format("Query translation failed for {0}", baselineKey));
                    Console.ForegroundColor = ConsoleColor.Gray;
                    Console.WriteLine(query.ToString());
                    throw new TestFailureException(e.Message);
                }

                if (this.executeQueries)
                {
                    Exception caught = null;
                    try
                    {
                        object result = pro.Execute(query);
                        IEnumerable seq = result as IEnumerable;
                        if (seq != null)
                        {
                            // iterate results
                            foreach (var item in seq)
                            {
                            }
                        }
                        else
                        {
                            IDisposable disposable = result as IDisposable;
                            if (disposable != null)
                                disposable.Dispose();
                        }
                    }
                    catch (Exception e)
                    {
                        caught = e;
                        if (!expectedToFail)
                        {
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.WriteLine("Query failed to execute:");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.WriteLine(queryText);
                            throw new TestFailureException(e.Message);
                        }
                    }
                    if (caught == null && expectedToFail)
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine("Query succeeded when expected to fail");
                        Console.ForegroundColor = ConsoleColor.Gray;
                        Console.WriteLine(queryText);
                        throw new TestFailureException(null);
                    }
                }
                else if (pro.Log != null)
                {
                    var text = pro.GetQueryText(query);
                    pro.Log.WriteLine(text);
                    pro.Log.WriteLine();
                }

                string baseline = null;
                if (this.baselines != null && this.baselines.TryGetValue(baselineKey, out baseline))
                {
                    string trimAct = TrimExtraWhiteSpace(queryText).Trim();
                    string trimBase = TrimExtraWhiteSpace(baseline).Trim();
                    if (trimAct != trimBase)
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine("Query translation does not match baseline:");
                        Console.ForegroundColor = ConsoleColor.Gray;
                        Console.WriteLine(queryText);
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine("---- current ----");
                        WriteDifferences(trimAct, trimBase);
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine("---- baseline ----");
                        WriteDifferences(trimBase, trimAct);
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        throw new TestFailureException("Translation differed from baseline.");
                    }
                }

                if (baseline == null && this.baselines != null)
                {
                    throw new TestFailureException("No baseline");
                }
            }
            finally
            {
                Console.ForegroundColor = originalColor;
            }
        }