/// <summary> /// Deletes the database. /// </summary> /// <param name="recreate"> /// if set to <c>true</c> [recreate]. /// </param> /// <returns> /// The <see cref="bool"/>. /// </returns> public bool DeleteDatabase(bool recreate) { var platform = SimpleIoc.Default.GetInstance <IPlatformService>(); if (!platform.StorageProvider.FileExists(this.databaseFilename)) { return(false); } if (this.DatabaseInstance != null) { this.DatabaseInstance.Dispose(); this.DatabaseInstance = null; } Exception error; platform.StorageProvider.TryDelete(this.databaseFilename, out error); if (!recreate) { return(true); } this.DatabaseInstance = CRMDatabase.Create(this.isUpdateCrm, this.databaseFilename); if (ConfigurationUnitStore.DefaultStore.ConfigValueIsSetDefaultValue("System.DisplayFixCatBySortInfo", true)) { this.DatabaseInstance.FixedCatSortBySortInfoAndCode = true; } this.Reps = new UPCRMReps(); return(true); }
/// <summary> /// Initializes a new instance of the <see cref="UPCRMDataStore"/> class. /// </summary> /// <param name="baseDirectoryPath"> /// The base directory path. /// </param> /// <param name="fileName"> /// Name of the file. /// </param> /// <param name="recreate"> /// if set to <c>true</c> [recreate]. /// </param> /// <param name="isUpdateCrm"> /// if set to <c>true</c> [is update CRM]. /// </param> /// <param name="configStore"> /// The configuration store. /// </param> public UPCRMDataStore( string baseDirectoryPath, string fileName, bool recreate, bool isUpdateCrm, IConfigurationUnitStore configStore) { this.BaseDirectoryPath = baseDirectoryPath; this.isUpdateCrm = isUpdateCrm; this.databaseFilename = Path.Combine(this.BaseDirectoryPath, fileName); if (recreate) { var platformService = SimpleIoc.Default.GetInstance <IPlatformService>(); if (platformService.StorageProvider.FileExists(this.databaseFilename)) { Exception error = null; platformService.StorageProvider.TryDelete(databaseFilename, out error); if (error != null) { Logger.LogError(error); } } } var db = CRMDatabase.Create(isUpdateCrm, this.databaseFilename); this.DatabaseInstance = db; if (configStore.ConfigValueIsSetDefaultValue("System.DisplayFixCatBySortInfo", true)) { this.DatabaseInstance.FixedCatSortBySortInfoAndCode = true; } if (recreate && !this.UpdateDDL()) { return; } this.AddVirtualLinks(); this.Reps = new UPCRMReps(); this.VirtualInfoAreaCache = new UPVirtualInfoAreaCache(); this.Disable86326 = configStore.ConfigValueIsSet("Disable.86326"); }
/// <summary> /// Undoes the record. /// </summary> /// <param name="record">The record.</param> /// <returns></returns> public int UndoRecord(UPCRMRecord record) { CRMDatabase database = this.DatabaseInstance; Record rec = this.CreateRecord(record, true); if (rec == null) { return(-1); } database.BeginTransaction(); int ret = rec.Update(); if (ret == 0 && !this.Disable86326) { this.UpdateParticipantsTablesForRecord(rec, database); } database.Commit(); return(ret); }
/// <summary> /// Saves the record rollback request nr. /// </summary> /// <param name="record">The record.</param> /// <param name="requestNr">The request nr.</param> /// <returns></returns> public int SaveRecordRollbackRequestNr(UPCRMRecord record, int requestNr) { CRMDatabase database = this.DatabaseInstance; Record rec = this.CreateRecord(record); if (rec == null) { return(-1); } database.BeginTransaction(); int ret = rec.InsertOrUpdate(); if (ret == 0 && !this.Disable86326) { this.UpdateParticipantsTablesForRecord(rec, database); } database.Commit(); return(ret); }