コード例 #1
0
        /// <summary>
        /// Reverts the agent category.
        /// </summary>
        /// <param name="agentCategoryIdDetails">The agent category identifier details.</param>
        /// <param name="agentCategoryDetails">The agent category details.</param>
        /// <returns></returns>
        public async Task <CSSResponse> RevertAgentCategory(AgentCategoryIdDetails agentCategoryIdDetails, UpdateAgentCategory agentCategoryDetails)
        {
            var agentCategory = await _repository.AgentCategories.GetAgentCategory(agentCategoryIdDetails);

            if (agentCategory == null)
            {
                return(new CSSResponse(HttpStatusCode.NotFound));
            }

            var agentCategories = await _repository.AgentCategories.GetAgentCategoriesByName(new AgentCategoryNameDetails { Name = agentCategoryDetails.Name });

            if (agentCategories?.Count > 0 && agentCategories.IndexOf(agentCategoryIdDetails.AgentCategoryId) == -1)
            {
                return(new CSSResponse($"Client with name '{agentCategoryDetails.Name}' already exists.", HttpStatusCode.Conflict));
            }

            var agentCategoryRequest = _mapper.Map(agentCategoryDetails, agentCategory);

            agentCategoryRequest.ModifiedDate = agentCategoryDetails.ModifiedDate;
            _repository.AgentCategories.UpdateAgentCategory(agentCategoryRequest);

            await _repository.SaveAsync();

            return(new CSSResponse(HttpStatusCode.NoContent));
        }
コード例 #2
0
        /// <summary>
        /// Gets the agentCategory.
        /// </summary>
        /// <param name="agentCategoryIdDetails">The agentCategory identifier details.</param>
        /// <returns></returns>
        public async Task <AgentCategory> GetAgentCategory(AgentCategoryIdDetails agentCategoryIdDetails)
        {
            var agentCategory = FindByCondition(x => x.Id == agentCategoryIdDetails.AgentCategoryId && x.IsDeleted == false)
                                .Include(x => x.DataType)
                                .SingleOrDefault();

            return(await Task.FromResult(agentCategory));
        }
コード例 #3
0
        /// <summary>
        /// Updates the agentCategory.
        /// </summary>
        /// <param name="agentCategoryIdDetails">The agentCategory identifier details.</param>
        /// <param name="agentCategoryDetails">The agentCategory details.</param>
        /// <returns></returns>
        public async Task <CSSResponse> UpdateAgentCategory(AgentCategoryIdDetails agentCategoryIdDetails, UpdateAgentCategory agentCategoryDetails)
        {
            var agentCategory = await _repository.AgentCategories.GetAgentCategory(agentCategoryIdDetails);

            if (agentCategory == null)
            {
                return(new CSSResponse(HttpStatusCode.NotFound));
            }

            var agentCategories = await _repository.AgentCategories.GetAgentCategoriesByName(new AgentCategoryNameDetails { Name = agentCategoryDetails.Name });

            if (agentCategories?.Count > 0 && agentCategories.IndexOf(agentCategoryIdDetails.AgentCategoryId) == -1)
            {
                return(new CSSResponse($"Agent Category with name '{agentCategoryDetails.Name}' already exists.", HttpStatusCode.Conflict));
            }

            var agentCategoryDetailsPreUpdate = new AgentCategory
            {
                Name             = agentCategory.Name,
                DataTypeId       = agentCategory.DataTypeId,
                DataTypeMinValue = agentCategory.DataTypeMinValue,
                DataTypeMaxValue = agentCategory.DataTypeMaxValue,
                ModifiedBy       = agentCategory.ModifiedBy,
                IsDeleted        = agentCategory.IsDeleted,
                ModifiedDate     = agentCategory.ModifiedDate
            };

            var agentCategoryRequest = _mapper.Map(agentCategoryDetails, agentCategory);

            _repository.AgentCategories.UpdateAgentCategory(agentCategoryRequest);

            await _repository.SaveAsync();

            if (!agentCategoryDetails.IsUpdateRevert)
            {
                await _bus.SendCommand <UpdateAgentCategoryCommand>(
                    MassTransitConstants.AgentCategoryUpdateCommandRouteKey,
                    new
                {
                    agentCategoryRequest.Id,
                    NameOldValue = agentCategoryDetailsPreUpdate.Name,
                    AgentCategoryTypeOldValue = agentCategoryDetailsPreUpdate.DataTypeId,
                    DataTypeMinValueOldValue  = agentCategoryDetailsPreUpdate.DataTypeMinValue,
                    DataTypeMaxValueOldValue  = agentCategoryDetailsPreUpdate.DataTypeMaxValue,
                    ModifiedByOldValue        = agentCategoryDetailsPreUpdate.ModifiedBy,
                    ModifiedDateOldValue      = agentCategoryDetailsPreUpdate.ModifiedDate,
                    IsDeletedOldValue         = agentCategoryDetailsPreUpdate.IsDeleted,
                    NameNewValue = agentCategoryRequest.Name,
                    AgentCategoryTypeNewValue = agentCategoryRequest.DataTypeId,
                    DataTypeMinValueNewValue  = agentCategoryRequest.DataTypeMinValue,
                    DataTypeMaxValueNewValue  = agentCategoryRequest.DataTypeMaxValue,
                    ModifiedByNewValue        = agentCategoryRequest.ModifiedBy,
                    ModifiedDateNewValue      = agentCategoryRequest.ModifiedDate,
                    IsDeletedNewValue         = agentCategoryRequest.IsDeleted
                });
            }
            return(new CSSResponse(HttpStatusCode.NoContent));
        }
コード例 #4
0
        /// <summary>
        /// Gets the agentCategory.
        /// </summary>
        /// <param name="agentCategoryIdDetails">The agentCategory identifier details.</param>
        /// <returns></returns>
        public async Task <CSSResponse> GetAgentCategory(AgentCategoryIdDetails agentCategoryIdDetails)
        {
            var agentCategory = await _repository.AgentCategories.GetAgentCategory(agentCategoryIdDetails);

            if (agentCategory == null)
            {
                return(new CSSResponse(HttpStatusCode.NotFound));
            }

            var mappedAgentCategory = _mapper.Map <AgentCategoryDTO>(agentCategory);

            return(new CSSResponse(mappedAgentCategory, HttpStatusCode.OK));
        }
コード例 #5
0
        /// <summary>
        /// Deletes the agentCategory.
        /// </summary>
        /// <param name="agentCategoryIdDetails">The agentCategory identifier details.</param>
        /// <returns></returns>
        public async Task <CSSResponse> DeleteAgentCategory(AgentCategoryIdDetails agentCategoryIdDetails)
        {
            var agentCategory = await _repository.AgentCategories.GetAgentCategory(agentCategoryIdDetails);

            if (agentCategory == null)
            {
                return(new CSSResponse(HttpStatusCode.NotFound));
            }

            var agentCategoryDetailsPreUpdate = new AgentCategory
            {
                Name             = agentCategory.Name,
                DataTypeId       = agentCategory.DataTypeId,
                DataTypeMinValue = agentCategory.DataTypeMinValue,
                DataTypeMaxValue = agentCategory.DataTypeMaxValue,
                ModifiedBy       = agentCategory.ModifiedBy,
                IsDeleted        = agentCategory.IsDeleted,
                ModifiedDate     = agentCategory.ModifiedDate
            };

            agentCategory.IsDeleted = true;

            _repository.AgentCategories.UpdateAgentCategory(agentCategory);
            await _repository.SaveAsync();

            await _bus.SendCommand <DeleteAgentCategoryCommand>(
                MassTransitConstants.AgentCategoryDeleteCommandRouteKey,
                new
            {
                agentCategory.Id,
                agentCategory.Name,
                agentCategory.DataTypeId,
                agentCategory.DataTypeMinValue,
                agentCategory.DataTypeMaxValue,
                ModifiedByOldValue   = agentCategoryDetailsPreUpdate.ModifiedBy,
                IsDeletedOldValue    = agentCategoryDetailsPreUpdate.IsDeleted,
                ModifiedDateOldValue = agentCategoryDetailsPreUpdate.ModifiedDate,
                IsDeletedNewValue    = agentCategory.IsDeleted
            });

            return(new CSSResponse(HttpStatusCode.NoContent));
        }
コード例 #6
0
        /// <summary>
        ///  The business implementation when the IAgentCategoryCreateFailed occurs
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public async Task Consume(ConsumeContext <IAgentCategoryCreateFailed> context)
        {
            AgentCategoryIdDetails agentCategoryIdDetails = new AgentCategoryIdDetails
            {
                AgentCategoryId = context.Message.Id
            };

            UpdateAgentCategory updateAgentCategory = new UpdateAgentCategory
            {
                Name             = context.Message.Name,
                DataTypeId       = context.Message.AgentCategoryType,
                DataTypeMinValue = context.Message.DataTypeMinValue,
                DataTypeMaxValue = context.Message.DataTypeMaxValue,
                ModifiedDate     = context.Message.ModifiedDate,
                IsDeleted        = true,
                IsUpdateRevert   = true
            };

            await _agentCategoryService.UpdateAgentCategory(agentCategoryIdDetails, updateAgentCategory);
        }