/// <summary> /// Gets a collection of all <see cref="INotificationMethod"/> assoicated with a provider /// </summary> /// <param name="providerKey">The <see cref="IGatewayProviderSettings"/> key</param> /// <returns>A collection of all <see cref="INotificationMethod"/> associated with a provider</returns> public IEnumerable <INotificationMethod> GetNotifcationMethodsByProviderKey(Guid providerKey) { using (var repository = RepositoryFactory.CreateNotificationMethodRepository(UowProvider.GetUnitOfWork())) { var query = Query <INotificationMethod> .Builder.Where(x => x.ProviderKey == providerKey); return(repository.GetByQuery(query)); } }
/// <summary> /// For testing /// </summary> /// <returns> /// The collection of all anonymous customers /// </returns> internal IEnumerable <IAnonymousCustomer> GetAllAnonymousCustomers() { using (var repository = RepositoryFactory.CreateAnonymousCustomerRepository(UowProvider.GetUnitOfWork())) { return(repository.GetAll()); } }
/// <summary> /// Gets a page of keys /// </summary> /// <param name="page"> /// The page. /// </param> /// <param name="itemsPerPage"> /// The items per page. /// </param> /// <param name="sortBy"> /// The sort by. /// </param> /// <param name="sortDirection"> /// The sort direction. /// </param> /// <returns> /// The <see cref="Page{Guid}"/>. /// </returns> internal override Page <Guid> GetPagedKeys(long page, long itemsPerPage, string sortBy = "", SortDirection sortDirection = SortDirection.Descending) { using (var repository = (OrderRepository)RepositoryFactory.CreateOrderRepository(UowProvider.GetUnitOfWork())) { var query = Persistence.Querying.Query <IOrder> .Builder.Where(x => x.Key != Guid.Empty); return(repository.GetPagedKeys(page, itemsPerPage, query, sortBy, sortDirection)); } }
/// <summary> /// Gets a <see cref="IDataTypeDefinition"/> by its Name /// </summary> /// <param name="name">Name of the <see cref="IDataTypeDefinition"/></param> /// <returns><see cref="IDataTypeDefinition"/></returns> public IDataTypeDefinition GetDataTypeDefinitionByName(string name) { using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork())) { return(repository.GetByQuery(new Query <IDataTypeDefinition>().Where(x => x.Name == name)).FirstOrDefault()); } }
/// <summary> /// Gets a <see cref="IDataTypeDefinition"/> by its unique guid Id /// </summary> /// <param name="id">Unique guid Id of the DataType</param> /// <returns><see cref="IDataTypeDefinition"/></returns> public IDataTypeDefinition GetDataTypeDefinitionById(Guid id) { using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork())) { var query = Query <IDataTypeDefinition> .Builder.Where(x => x.Key == id); var definitions = repository.GetByQuery(query); return(definitions.FirstOrDefault()); } }
/// <summary> /// Gets all <see cref="IDataTypeDefinition"/> objects or those with the ids passed in /// </summary> /// <param name="ids">Optional array of Ids</param> /// <returns>An enumerable list of <see cref="IDataTypeDefinition"/> objects</returns> public IEnumerable <IDataTypeDefinition> GetAllDataTypeDefinitions(params int[] ids) { using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork())) { return(repository.GetAll(ids)); } }
/// <summary> /// Returns the PreValueCollection for the specified data type /// </summary> /// <param name="id"></param> /// <returns></returns> public PreValueCollection GetPreValuesCollectionByDataTypeId(int id) { using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork())) { return(repository.GetPreValuesCollectionByDataTypeId(id)); } }
public async System.Threading.Tasks.Task RequestTestAsync() { EBGetOrderListReqModel reqModel = new EBGetOrderListReqModel(); reqModel.GetDetail = IsOrNotEnum.Yes; reqModel.Page = 1; reqModel.PageSize = 100; Conditions c = new Conditions(); List <string> list = new List <string>(); list.Add("600153656"); c.RefNos = list; reqModel.Condition = c; EBGetOrderListRequest req = new EBGetOrderListRequest("admin", "longqi123456", reqModel); var rr = await req.Request(); var repository = LogManager.CreateRepository(Common.LogFactory.repositoryName); // 指定配置文件 XmlConfigurator.Configure(repository, new FileInfo("log4net.config")); var logger = new Moq.Mock <ILogger <DataAccess> >(); var sp = new Moq.Mock <IServiceProvider>(); var myContext = new Service.Context.XinDBContext(new Microsoft.EntityFrameworkCore.DbContextOptions <Service.Context.XinDBContext>()); sp.Setup((o) => o.GetService(typeof(IEntityContext))).Returns(myContext); sp.Setup((o) => o.GetService(typeof(IRepository <ECSalesOrder>))) .Returns(new GenericEntityRepository <ECSalesOrder>(logger.Object)); var provider = new UowProvider(logger.Object, sp.Object); using (var uow = provider.CreateUnitOfWork()) { var repos = uow.GetRepository <ECSalesOrder>(); List <ECSalesOrder> insertList = new List <ECSalesOrder>(); List <ECSalesOrder> updateList = new List <ECSalesOrder>(); foreach (var item in rr.Body) { var m = Mapper <EC_SalesOrder, ECSalesOrder> .Map(item); var had = repos.Get(m.OrderId, x => x.Include(a => a.BnsSendDeliverdToEcs)); if (had != null) { updateList.Add(m); } else { insertList.Add(m); } } try { insertList = insertList.GroupBy(item => item.OrderId).Select(item => item.First()).ToList(); updateList = updateList.GroupBy(item => item.OrderId).Select(item => item.First()).ToList(); await repos.BulkInsertAsync(insertList, x => x.IncludeGraph = true); await repos.BulkUpdateAsync(updateList, x => x.IncludeGraph = true); uow.BulkSaveChanges(); insertList.Clear(); updateList.Clear(); } catch (Exception ex) { throw ex; } } Assert.Fail(); }
/// <inheritdoc /> public IAuditEntry Write(int performingUserId, string perfomingDetails, string performingIp, DateTime eventDateUtc, int affectedUserId, string affectedDetails, string eventType, string eventDetails) { if (performingUserId < 0) { throw new ArgumentOutOfRangeException(nameof(performingUserId)); } if (string.IsNullOrWhiteSpace(perfomingDetails)) { throw new ArgumentException("Value cannot be null or whitespace.", nameof(perfomingDetails)); } if (string.IsNullOrWhiteSpace(eventType)) { throw new ArgumentException("Value cannot be null or whitespace.", nameof(eventType)); } if (string.IsNullOrWhiteSpace(eventDetails)) { throw new ArgumentException("Value cannot be null or whitespace.", nameof(eventDetails)); } //we need to truncate the data else we'll get SQL errors affectedDetails = affectedDetails?.Substring(0, Math.Min(affectedDetails.Length, AuditEntryDto.DetailsLength)); eventDetails = eventDetails.Substring(0, Math.Min(eventDetails.Length, AuditEntryDto.DetailsLength)); //validate the eventType - must contain a forward slash, no spaces, no special chars var eventTypeParts = eventType.ToCharArray(); if (eventTypeParts.Contains('/') == false || eventTypeParts.All(c => char.IsLetterOrDigit(c) || c == '/' || c == '-') == false) { throw new ArgumentException(nameof(eventType) + " must contain only alphanumeric characters, hyphens and at least one '/' defining a category"); } if (eventType.Length > AuditEntryDto.EventTypeLength) { throw new ArgumentException($"Must be max {AuditEntryDto.EventTypeLength} chars.", nameof(eventType)); } if (performingIp != null && performingIp.Length > AuditEntryDto.IpLength) { throw new ArgumentException($"Must be max {AuditEntryDto.EventTypeLength} chars.", nameof(performingIp)); } var entry = new AuditEntry { PerformingUserId = performingUserId, PerformingDetails = perfomingDetails, PerformingIp = performingIp, EventDateUtc = eventDateUtc, AffectedUserId = affectedUserId, AffectedDetails = affectedDetails, EventType = eventType, EventDetails = eventDetails }; if (_isAvailable.Value == false) { return(entry); } using (var uow = UowProvider.GetUnitOfWork()) { var repository = RepositoryFactory.CreateAuditEntryRepository(uow); repository.AddOrUpdate(entry); uow.Commit(); } return(entry); }
/// <summary> /// Gets a collection of <see cref="IEntityFilterGroup"/> by a collection of keys. /// </summary> /// <param name="keys"> /// The keys. /// </param> /// <returns> /// The <see cref="IEnumerable{IEntityFilterGroup}"/>. /// </returns> internal IEnumerable <IEntityFilterGroup> GetEntityFilterGroupsByProviderKeys(IEnumerable <Guid> keys) { using (var repository = RepositoryFactory.CreateEntityCollectionRepository(UowProvider.GetUnitOfWork())) { return(repository.GetEntityFilterGroupsByProviderKeys(keys.ToArray())); } }
/// <summary> /// Gets a collection of <see cref="IEntityFilterGroup"/> by a collection of keys that are not associated /// with a product /// </summary> /// <param name="keys"> /// The keys. /// </param> /// <param name="productKey"> /// The product key. /// </param> /// <returns> /// The <see cref="IEnumerable{IEntityFilterGroup}"/>. /// </returns> internal IEnumerable <IEntityFilterGroup> GetEntityFilterGroupsNotContainingProduct(IEnumerable <Guid> keys, Guid productKey) { using (var repository = RepositoryFactory.CreateEntityCollectionRepository(UowProvider.GetUnitOfWork())) { return(repository.GetEntityFilterGroupsNotContainingProduct(keys.ToArray(), productKey)); } }
/// <summary> /// The get entity collections by product key. /// </summary> /// <param name="productKey"> /// The product key. /// </param> /// <param name="isFilter"> /// A value indicating whether the query should be for filter collections or standard "static" collections /// </param> /// <returns> /// The <see cref="IEnumerable{IEntityCollection}"/>. /// </returns> internal IEnumerable <IEntityCollection> GetEntityCollectionsByProductKey(Guid productKey, bool isFilter = false) { using (var repository = RepositoryFactory.CreateEntityCollectionRepository(UowProvider.GetUnitOfWork())) { return(repository.GetEntityCollectionsByProductKey(productKey, isFilter)); } }
/// <summary> /// Gets the count of collections managed by a provider /// </summary> /// <param name="providerKey">The provider key</param> /// <returns> /// The count of collections managed by a provider /// </returns> public int CollectionCountManagedByProvider(Guid providerKey) { using (var repostitory = RepositoryFactory.CreateEntityCollectionRepository(UowProvider.GetUnitOfWork())) { var query = Query <IEntityCollection> .Builder.Where(x => x.ProviderKey == providerKey); return(repostitory.Count(query)); } }
/// <summary> /// Gets a collection of all notification methods. /// </summary> /// <remarks>Primarily used for testing</remarks> internal IEnumerable <INotificationMethod> GetAll() { using (var repository = RepositoryFactory.CreateNotificationMethodRepository(UowProvider.GetUnitOfWork())) { return(repository.GetAll()); } }
/// <summary> /// Determines if a collection exists. /// </summary> /// <param name="key"> /// The key. /// </param> /// <returns> /// The <see cref="bool"/>. /// </returns> public bool Exists(Guid key) { using (var repository = RepositoryFactory.CreateEntityCollectionRepository(UowProvider.GetUnitOfWork())) { return(repository.Exists(key)); } }
/// <summary> /// The get by key. /// </summary> /// <param name="key"> /// The key. /// </param> /// <returns> /// The <see cref="IEntityCollection"/>. /// </returns> public IEntityCollection GetByKey(Guid key) { using (var repository = RepositoryFactory.CreateEntityCollectionRepository(UowProvider.GetUnitOfWork())) { return(repository.Get(key)); } }
/// <summary> /// The get entity collections by customer key. /// </summary> /// <param name="customerKey"> /// The customer key. /// </param> /// <returns> /// The <see cref="IEnumerable{IEntityCollection}"/>. /// </returns> internal IEnumerable <IEntityCollection> GetEntityCollectionsByCustomerKey(Guid customerKey) { using (var repository = RepositoryFactory.CreateEntityCollectionRepository(UowProvider.GetUnitOfWork())) { return(repository.GetEntityCollectionsByCustomerKey(customerKey)); } }
/// <summary> /// The get by provider key. /// </summary> /// <param name="providerKey"> /// The provider key. /// </param> /// <returns> /// The <see cref="IEnumerable{IEntityCollection}"/>. /// </returns> public IEnumerable <IEntityCollection> GetByProviderKey(Guid providerKey) { using (var repository = RepositoryFactory.CreateEntityCollectionRepository(UowProvider.GetUnitOfWork())) { var query = Query <IEntityCollection> .Builder.Where(x => x.ProviderKey == providerKey); return(repository.GetByQuery(query)); } }
/// <summary> /// Gets all prevalues for an <see cref="IDataTypeDefinition"/> /// </summary> /// <param name="id">Id of the <see cref="IDataTypeDefinition"/> to retrieve prevalues from</param> /// <returns>An enumerable list of string values</returns> public IEnumerable <string> GetPreValuesByDataTypeId(int id) { using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork())) { var collection = repository.GetPreValuesCollectionByDataTypeId(id); //now convert the collection to a string list var list = collection.FormatAsDictionary() .Select(x => x.Value.Value) .ToList(); return(list); } }
/// <summary> /// The get all. /// </summary> /// <returns> /// The <see cref="IEnumerable{IEntityCollection}"/>. /// </returns> public IEnumerable <IEntityCollection> GetAll() { using (var repository = RepositoryFactory.CreateEntityCollectionRepository(UowProvider.GetUnitOfWork())) { return(repository.GetAll()); } }
/// <summary> /// Gets a specific PreValue by its Id /// </summary> /// <param name="id">Id of the PreValue to retrieve the value from</param> /// <returns>PreValue as a string</returns> public string GetPreValueAsString(int id) { using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork())) { return(repository.GetPreValueAsString(id)); } }
/// <summary> /// The exists in collection. /// </summary> /// <param name="parentKey"> /// The parent key. /// </param> /// <param name="collectionKey"> /// The collection key. /// </param> /// <returns> /// The <see cref="bool"/>. /// </returns> public bool ExistsInCollection(Guid?parentKey, Guid collectionKey) { using (var repository = RepositoryFactory.CreateEntityCollectionRepository(UowProvider.GetUnitOfWork())) { var query = Query <IEntityCollection> .Builder.Where(x => x.ParentKey == parentKey && x.Key == collectionKey); return(repository.Count(query) > 0); } }
/// <summary> /// Gets a <see cref="IDataTypeDefinition"/> by its Id /// </summary> /// <param name="id">Id of the <see cref="IDataTypeDefinition"/></param> /// <returns><see cref="IDataTypeDefinition"/></returns> public IDataTypeDefinition GetDataTypeDefinitionById(int id) { using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork())) { return(repository.Get(id)); } }
/// <summary> /// The get root level entity collections. /// </summary> /// <param name="entityTfKey"> /// The entity type field key. /// </param> /// <returns> /// The <see cref="IEnumerable{IEntityCollection}"/>. /// </returns> public IEnumerable <IEntityCollection> GetRootLevelEntityCollections(Guid entityTfKey) { using (var repository = RepositoryFactory.CreateEntityCollectionRepository(UowProvider.GetUnitOfWork())) { var query = Query <IEntityCollection> .Builder.Where(x => x.ParentKey == null && x.EntityTfKey == entityTfKey); return(repository.GetByQuery(query)); } }
/// <summary> /// Gets a <see cref="IDataTypeDefinition"/> by its control Id /// </summary> /// <param name="propertyEditorAlias">Alias of the property editor</param> /// <returns>Collection of <see cref="IDataTypeDefinition"/> objects with a matching contorl id</returns> public IEnumerable <IDataTypeDefinition> GetDataTypeDefinitionByPropertyEditorAlias(string propertyEditorAlias) { using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork())) { var query = Query <IDataTypeDefinition> .Builder.Where(x => x.PropertyEditorAlias == propertyEditorAlias); var definitions = repository.GetByQuery(query); return(definitions); } }
/// <summary> /// The get from collection. /// </summary> /// <param name="collectionKey"> /// The collection key. /// </param> /// <param name="page"> /// The page. /// </param> /// <param name="itemsPerPage"> /// The items per page. /// </param> /// <param name="sortBy"> /// The sort by. /// </param> /// <param name="sortDirection"> /// The sort direction. /// </param> /// <returns> /// The <see cref="Page"/>. /// </returns> public Page <IEntityCollection> GetFromCollection( Guid collectionKey, long page, long itemsPerPage, string sortBy = "", SortDirection sortDirection = SortDirection.Descending) { using (var repository = RepositoryFactory.CreateEntityCollectionRepository(UowProvider.GetUnitOfWork())) { var query = Query <IEntityCollection> .Builder.Where(x => x.ParentKey == collectionKey); return(repository.GetPage(page, itemsPerPage, query, ValidateSortByField(sortBy), sortDirection)); } }
/// <summary> /// Gets an <see cref="ICustomer"/> or <see cref="IAnonymousCustomer"/> object by its 'UniqueId' /// </summary> /// <param name="entityKey">GUID key of either object to retrieve</param> /// <returns><see cref="ICustomerBase"/></returns> public ICustomerBase GetAnyByKey(Guid entityKey) { ICustomerBase customer; // try retrieving an anonymous customer first as in most situations this will be what is being queried using (var repository = RepositoryFactory.CreateAnonymousCustomerRepository(UowProvider.GetUnitOfWork())) { customer = repository.Get(entityKey); } if (customer != null) { return(customer); } // try retrieving an existing customer using (var repository = RepositoryFactory.CreateCustomerRepository(UowProvider.GetUnitOfWork())) { return(repository.Get(entityKey)); } }
/// <summary> /// The child entity collection count. /// </summary> /// <param name="collectionKey"> /// The collection key. /// </param> /// <returns> /// The <see cref="int"/>. /// </returns> public int ChildEntityCollectionCount(Guid collectionKey) { using (var repository = RepositoryFactory.CreateEntityCollectionRepository(UowProvider.GetUnitOfWork())) { var query = Query <IEntityCollection> .Builder.Where(x => x.ParentKey == collectionKey); return(repository.Count(query)); } }
/// <summary> /// Gets a <see cref="INotificationMessage"/> by it's unique key (Guid) /// </summary> /// <param name="key">The key (Guid) for the <see cref="INotificationMessage"/> to be retrieved</param> public INotificationMessage GetByKey(Guid key) { using (var repository = RepositoryFactory.CreateNotificationMessageRepository(UowProvider.GetUnitOfWork())) { return(repository.Get(key)); } }
/// <summary> /// Saves a collection of <see cref="IShipment"/> objects /// </summary> /// <param name="shipmentList">Collection of <see cref="IShipment"/> to save</param> /// <param name="raiseEvents">Optional boolean indicating whether or not to raise events</param> public void Save(IEnumerable <IShipment> shipmentList, bool raiseEvents = true) { var shipmentsArray = shipmentList as IShipment[] ?? shipmentList.ToArray(); var newShipmentCount = shipmentsArray.Count(x => x.ShipmentNumber <= 0 && !((Shipment)x).HasIdentity); if (newShipmentCount > 0) { var lastShipmentumber = _storeSettingService.GetNextShipmentNumber(newShipmentCount); foreach (var newShipment in shipmentsArray.Where(x => x.ShipmentNumber <= 0 && !((Shipment)x).HasIdentity)) { ((Shipment)newShipment).ShipmentNumber = lastShipmentumber; lastShipmentumber = lastShipmentumber - 1; } } var existingShipmentsWithStatusChanges = shipmentsArray.Where( x => ((Shipment)x).HasIdentity && ((Shipment)x).IsPropertyDirty("ShipmentStatus")) .ToArray(); if (raiseEvents) { Saving.RaiseEvent(new SaveEventArgs <IShipment>(shipmentsArray), this); if (existingShipmentsWithStatusChanges.Any()) { StatusChanging.RaiseEvent( new StatusChangeEventArgs <IShipment>(existingShipmentsWithStatusChanges), this); } } if (raiseEvents) { Saving.RaiseEvent(new SaveEventArgs <IShipment>(shipmentsArray), this); } using (new WriteLock(Locker)) { var uow = UowProvider.GetUnitOfWork(); using (var repository = RepositoryFactory.CreateShipmentRepository(uow)) { foreach (var shipment in shipmentsArray) { repository.AddOrUpdate(shipment); } uow.Commit(); } } if (!raiseEvents) { return; } Saved.RaiseEvent(new SaveEventArgs <IShipment>(shipmentsArray), this); if (existingShipmentsWithStatusChanges.Any()) { StatusChanged.RaiseEvent(new StatusChangeEventArgs <IShipment>(existingShipmentsWithStatusChanges), this); } }