示例#1
0
 private void OnIndexDocuments(IndexResponse resp, Dictionary <string, object> customData)
 {
     Log.Debug("TestRetrieveAndRank.OnIndexDocuments()", "{0}", customData["json"].ToString());
     Test(resp != null);
     _indexDocumentsTested = true;
     Runnable.Run(ReadyToContinue(_waitTime));
 }
示例#2
0
        public async Task <IActionResult> Goodlistbranch(GoodlistRequest condition)
        {
            string userName = HttpContext.Session.GetString("UserName");

            log.InfoFormat(userName + " || Get into 商品列表");
            try
            {
                var goodlist = await _indexManager.GetGoodstypeAsync(condition);

                //获取类型列表
                var typelist = await _indexManager.GetTypesAsync();

                var list = new IndexResponse()
                {
                    GoodList = goodlist,
                    TypeList = typelist,
                    Typename = condition.Typename
                };
                log.InfoFormat("获取分类商品列表成功" + (goodlist != null ? Helper.JsonHelper.ToJson(goodlist) : ""));
                log.InfoFormat("获取类型列表成功" + (typelist != null ? Helper.JsonHelper.ToJson(typelist) : ""));
                ViewData["UserName"] = userName;
                return(View(list));
            }
            catch (Exception e)
            {
                log.Error("商品列表获取失败,错误提示: " + Helper.JsonHelper.ToJson(e));
                return(View("Error", e));
            }
        }
示例#3
0
 public bool InsertOfferDetails(OfferDetails offerDetails, int userId, int categoryId)
 {
     lock (padlock)
     {
         string index = userId + "_cat" + categoryId;
         if (userId == 1)
         {
             offerDetails.CreatedDate = DateTime.Now;
             IndexResponse status = client.Index(offerDetails, i => i.Index("offer_details"));
             return(status.IsValid);
         }
         else
         {
             var ex = client.Indices.Exists(index);
             if (ex.Exists == false)
             {
                 offerDetails.CreatedDate = DateTime.Now;
                 var res = client.Indices.Create(index, c => c
                                                 .Map <OfferDetails>(x => x.AutoMap()).Settings(s =>
                                                                                                s.NumberOfReplicas(2).NumberOfShards(2)));
                 if (!res.IsValid || !res.Acknowledged)
                 {
                     throw new Exception("Cannot create index: " + index);
                 }
             }
             offerDetails.CreatedDate = DateTime.Now;
             IndexResponse status = client.Index <OfferDetails>(offerDetails, i => i.Index(index));
             _logger.Info("Document elastic: " + status.Result);
             _logger.Info(offerDetails.Uri + " " + offerDetails.CreatedDate);
             return(status.IsValid);
         }
     }
 }
 private void OnIndexDocuments(IndexResponse resp, string data)
 {
     Log.Debug("\tExampleRetrieveAndRank", "Retrieve and rank - Index documents response: {0}", data);
     Test(resp != null);
     _indexDocumentsTested = true;
     Runnable.Run(ReadyToContinue(_waitTime));
 }
        /// <summary>
        /// Reindexes all content
        /// </summary>
        /// <param name="query">IndexRequest containing publication information</param>
        /// <returns>IndexResponse indicating success or failure</returns>

        /*public IndexResponse ReIndex(IndexRequest request)
         * {
         *  GenericStorageExtensionLogger.WriteLog(ELogLevel.INFO, "Entering SolrIndexManager.ReIndex for TCM URI: " +
         *                        request.ItemURI);
         *
         *  OperationResult result = OperationResult.Failure;
         *  string[] schemas;
         *  int publicationID = Convert.ToInt32(request.ItemURI);
         *
         *  IndexResponse response = new IndexResponse();
         *  try
         *  {
         *      propertyConfiguration = ConfigurationManager.GetInstance().GetConfiguration(SolrServicesConstants.SCHEMA_ID_MAPPING_CONFIG)
         *          as IPropertyConfiguration;
         *
         *      schemas = propertyConfiguration.GetPropertyArray("Schema");
         *
         *      ReIndex(schemas, publicationID);
         *      CommitToSOLR();
         *      result = OperationResult.Success;
         *  }
         *  catch (Exception ex)
         *  {
         *      string logString = ServiceConstants.LOG_MESSAGE + Environment.NewLine;
         *      string itemURI = request != null ? request.ItemURI : "Request Query = NULL";
         *      logString = string.Concat(logString, string.Format("Item URI : {0}", itemURI),
         *                                  Environment.NewLine, string.Format("{0}{1}", ex.Message, ex.StackTrace));
         *      GenericStorageExtensionLogger.WriteLog(ELogLevel.ERROR, logString);
         *      result = OperationResult.Failure;
         *  }
         *  response.Result = (int) result;
         *
         *  GenericStorageExtensionLogger.WriteLog(ELogLevel.INFO,
         *                         "Exiting SolrIndexManager.ReIndex, Result: " +
         *                         result.ToString());
         *
         *  return response;
         * }*/

        /// <summary>
        /// Adds a list of component presentation XML Documents to Solr
        /// </summary>
        /// <param name="productDocuments">List of component presentation XMLs</param>
        /// <returns>IndexResponse</returns>
        public IndexResponse AddMultipleDocumentXML(List <XmlDocument> documents)
        {
            GenericStorageExtensionLogger.WriteLog(ELogLevel.INFO,
                                                   "Entering SolrIndexManager.UpdateProductDocuments: "
                                                   + documents.Count
                                                   + " documents");

            OperationResult result = OperationResult.Failure;

            IndexResponse response = new IndexResponse();

            try
            {
                documents.ForEach(document => AddDocumentXML(document));
                CommitToSOLR();
                result = OperationResult.Success;
            }
            catch (Exception ex)
            {
                string logString = GenericStorageExtensionServiceConstants.LOG_MESSAGE + Environment.NewLine;
                logString = string.Concat(logString, Environment.NewLine,
                                          string.Format("{0}{1}", ex.Message, ex.StackTrace));

                GenericStorageExtensionLogger.WriteLog(ELogLevel.ERROR, logString);
                result = OperationResult.Failure;
            }

            response.Result = (int)result;

            GenericStorageExtensionLogger.WriteLog(ELogLevel.INFO,
                                                   "Exiting SolrIndexManager.AddProductDocuments, Result: " +
                                                   result.ToString());
            return(response);
        }
        /// <summary>
        /// This method removes all documents of the given type from a specific Solr Core
        /// </summary>
        /// <returns>IndexResponse</returns>
        public IndexResponse RemoveAllDocumentsOfType(string content_type)
        {
            GenericStorageExtensionLogger.WriteLog(ELogLevel.INFO,
                                                   "Entering SolrIndexManager.RemoveAllDocumentsOfType, Content Type: " +
                                                   content_type);

            IndexResponse   response = new IndexResponse();
            OperationResult result   = OperationResult.Failure;

            try
            {
                AbstractSolrQuery query = new SolrQueryByField(GenericStorageExtensionServicesConstants.ContentType, content_type);
                RemoveFromSOLR(query);
                CommitToSOLR();
                result = OperationResult.Success;
            }
            catch (Exception ex)
            {
                string logString = GenericStorageExtensionServiceConstants.LOG_MESSAGE + Environment.NewLine;
                logString = string.Concat(logString, string.Format("{0}{1}", ex.Message, ex.StackTrace));
                GenericStorageExtensionLogger.WriteLog(ELogLevel.ERROR, logString);
                result = OperationResult.Failure;
            }

            response.Result = (int)result;
            GenericStorageExtensionLogger.WriteLog(ELogLevel.INFO,
                                                   "Exiting SolrIndexManager.RemoveAllDocumentsOfType, Result: " +
                                                   result.ToString());
            return(response);
        }
示例#7
0
        public bool IndexToServer()
        {
            var settings = new ConnectionSettings(new Uri(ServerAddress)).DefaultIndex(PrimaryIndex);
            var client   = new ElasticClient(settings);

            List <Task <IndexResponse> > taskList = new List <Task <IndexResponse> >(Entries.Count);

            foreach (object entry in Entries)
            {
                Task <IndexResponse> task = client.IndexDocumentAsync(entry);
                taskList.Add(task);
            }

            int failedCount = 0;

            foreach (Task <IndexResponse> task in taskList)
            {
                IndexResponse response = task.Result;
                if (!response.IsValid)
                {
                    ++failedCount;
                    break;
                }
            }

            Console.WriteLine(failedCount == 0 ? "Succesfully indexed " + Entries.Count + " entries." : "Failed to index " + failedCount + " entries.");

            return(failedCount == 0);
        }
示例#8
0
        public async Task <int> CreateListing(CreateListingRequest request, int userId)
        {
            Listing listing = new Listing
            {
                Title    = request.Title,
                About    = request.About,
                Currency = Currencies.GBP,
                UserId   = userId,
                Price    = request.Price,
                Created  = DateTime.Now,
                Status   = Models.Domain.Status.Open,
            };

            listing.Id = await _listingRepository.AddListing(listing);

            await _listingRepository.AddSearchTags(request.SearchTags, listing.Id);

            List <SearchTagType> searchTagTypes = await _listingRepository.GetRelatedSearchTagsForListing(listing.Id);

            ElasticListing elasticListing = (ElasticListing)listing;

            elasticListing.Tags = ElasticListing.SearchTagTypesToElasticTags(searchTagTypes);
            IndexResponse indexListing = await _elastic.IndexDocumentAsync(elasticListing);

            return(listing.Id);
        }
        public WilmaSession(WilmaContext context, IndexResponse data)
        {
            Context = context;

            Roles      = data.Roles;
            FormKey    = data.FormKey;
            ApiVersion = data.ApiVersion;
        }
示例#10
0
        /// <summary>
        /// 单一添加一行数据(没有就创建,有就修改覆盖)
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="model"></param>
        /// <param name="indexName"></param>
        /// <param name="typeName"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public bool Set(T model, string indexName, string typeName, string id)
        {
            var res = new IndexRequest <T>(indexName, typeName, id);

            res.Document = model;
            IndexResponse result = (IndexResponse)_es.Index <T>(res);

            return(result.IsValid);
        }
示例#11
0
        public IndexResponse AddDocument(IndexRequest query)
        {
            GenericStorageExtensionLogger.WriteLog(ELogLevel.INFO,
                                                   "Entering MI4TIndexManager.AddDocument for TCM URI: " +
                                                   query.ItemURI);

            IndexResponse response = new IndexResponse();

            OperationResult result = OperationResult.Failure;

            try
            {
                XmlDocument doc = new XmlDocument();
                string      ID  = string.Empty;
                doc.LoadXml(Utility.UpdateContentTypeXML(Regex.Replace(query.DCP.ToString(), @"\b'\b", "")));
                var bln = Deserialize <MongoDBModel>(doc);

                var conString = propConfiguration.GetString(GenericStorageExtensionServicesConstants.Search_URL);
                GenericStorageExtensionLogger.WriteLog(ELogLevel.INFO, "conString: " +
                                                       conString);
                /// creating MongoClient
                var client = new MongoClient(conString);

                ///Get the database
                var DB = client.GetDatabase(propConfiguration.GetString(GenericStorageExtensionServicesConstants.dbName));
                GenericStorageExtensionLogger.WriteLog(ELogLevel.INFO, "dbName: " +
                                                       propConfiguration.GetString(GenericStorageExtensionServicesConstants.dbName));

                ///Get the collcetion from the DB in which you want to insert the data
                var collection = DB.GetCollection <MongoDBModel>(propConfiguration.GetString(GenericStorageExtensionServicesConstants.tableName));
                GenericStorageExtensionLogger.WriteLog(ELogLevel.INFO, "tableName: " +
                                                       propConfiguration.GetString(GenericStorageExtensionServicesConstants.tableName));
                //var filter = Builders<MongoDBModel>.Filter.Eq("ItemURI", bln.ItemURI);
                //var result11 =  collection.Find(filter).ToListAsync();

                ///Insert data in to MongoDB
                collection.InsertOne(bln);
                result = OperationResult.Success;
            }
            catch (Exception ex)
            {
                string logString = GenericStorageExtensionServiceConstants.LOG_MESSAGE + Environment.NewLine;

                logString = string.Concat(logString,
                                          Environment.NewLine,
                                          string.Format("{0}{1}", ex.Message, ex.StackTrace));

                GenericStorageExtensionLogger.WriteLog(ELogLevel.ERROR, logString);
                result = OperationResult.Failure;
            }
            response.Result = (int)result;
            GenericStorageExtensionLogger.WriteLog(ELogLevel.INFO,
                                                   "Exiting MI4TIndexManager.AddDocument, Result: " +
                                                   result.ToString());

            return(response);
        }
示例#12
0
        public bool SendData(CollectedData data)
        {
            var settings = new ConnectionSettings(new Uri("http://192.168.0.223:9200")).DefaultIndex("logus");

            var client = new ElasticClient(settings);

            IndexResponse indexResponse = client.IndexDocument(data);

            return(indexResponse.IsValid);
        }
示例#13
0
        public IActionResult Index()
        {
            var response = new IndexResponse()
            {
                TimeZones  = timeZones.OrderBy(x => x.Id).ToList(),
                TimeZoneId = GetTimeZoneId()
            };

            return(View(response));
        }
示例#14
0
        public async Task IndexDocument(ProductPriceFetchResult productPrice)
        {
            IndexResponse response = _elastic.Index <ProductPriceFetchResult>(productPrice, i => i.Index("prices"));

            var debugInfo = response.DebugInformation;

            if (!response.IsValid)
            {
                throw response.OriginalException;
            }
        }
示例#15
0
        public void InsertCompany()
        {
            Company company = new Company
            {
                Id            = 1,
                CompanyNumber = "1234134",
                Name          = "Neco s.r.o"
            };

            IndexResponse indexResponse = this.ElasticClient.IndexDocument(company);
        }
示例#16
0
        private async Task InsertBookDocumentsAsync()
        {
            foreach (Book book in _books)
            {
                IndexResponse response = await _esClient.IndexAsync(book, i => i.Index(_appConfig.Elasticsearch.BookIndex));

                Log.Information(
                    "Inserted book {Title}, has Id {Id}",
                    book.Title,
                    response.Id);
            }
        }
示例#17
0
 protected Dictionary <string, string> GetParamDictionary(IndexResponse details)
 {
     return(new Dictionary <string, string>()
     {
         { "Name", details.Name },
         { "Version", details.Version },
         { "Environment", details.Environment },
         { "Assembly", details.Assembly },
         { "Company", details.Company },
         { "Copyright", details.Copyright }
     });
 }
示例#18
0
        private async Task InsertEpFileDocumentsAsync()
        {
            foreach (EpFile file in _epFiles)
            {
                IndexResponse response = await _esClient.IndexAsync(file, i => i.Index(_appConfig.Elasticsearch.EpFileIndex));

                Log.Information(
                    "Inserted file {Title}, has Id {Id}",
                    file.Title,
                    response.Id);
            }
        }
示例#19
0
        /// <summary>
        /// 根据实体映射,初始化Index
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="model"></param>
        /// <param name="indexName"></param>
        /// <param name="typeName"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public bool AddIndex(T model, string indexName, string typeName, string id)
        {
            if (!IndexExist(indexName))
            {
                InitializeIndexMap(indexName);
            }
            var res = new IndexRequest <T>(indexName, typeName, id);

            res.Document = model;
            IndexResponse result = (IndexResponse)_es.Index <T>(res);

            return(result.IsValid);
        }
        /// <summary>
        /// This method indexes a Component presentation in Solr
        /// </summary>
        /// <param name="query">IndexRequest containing the component presentation</param>
        /// <returns>IndexResponse indicating success or failure</returns>
        public IndexResponse AddDocument(IndexRequest query)
        {
            GenericStorageExtensionLogger.WriteLog(ELogLevel.INFO,
                                                   "Entering SolrIndexManager.AddDocument for TCM URI: " +
                                                   query.ItemURI);

            IndexResponse response = new IndexResponse();

            OperationResult result = OperationResult.Failure;

            try
            {
                XmlDocument dcpXML            = new XmlDocument();
                string      removeWildCharDCP = string.Empty;
                if (!string.IsNullOrEmpty(query.DCP))
                {
                    removeWildCharDCP = Regex.Replace(query.DCP.ToString(), @"\b'[s]", "");
                    dcpXML.LoadXml(removeWildCharDCP);
                    GenericStorageExtensionLogger.WriteLog(ELogLevel.INFO, "DCP XML before adding child element " + dcpXML);
                    Dictionary <string, string> additionalParameters = GetAdditionalParameters();
                    SetAdditionalParameters(additionalParameters, ref dcpXML);
                    GenericStorageExtensionLogger.WriteLog(ELogLevel.INFO, "DCP XML post adding child element " + query.DCP);
                    GenericStorageExtensionLogger.WriteLog(ELogLevel.INFO, "**************************************************************** ");
                    GenericStorageExtensionLogger.WriteLog(ELogLevel.INFO, "dcpXML post adding child element " + dcpXML);
                }

                AddDocumentXML(dcpXML);
                CommitToSOLR();
                result = OperationResult.Success;
            }
            catch (Exception ex)
            {
                string logString = GenericStorageExtensionServiceConstants.LOG_MESSAGE + Environment.NewLine;

                logString = string.Concat(logString,
                                          Environment.NewLine,
                                          string.Format("{0}{1}", ex.Message, ex.StackTrace));

                GenericStorageExtensionLogger.WriteLog(ELogLevel.ERROR, logString);
                result = OperationResult.Failure;
            }

            response.Result = (int)result;

            GenericStorageExtensionLogger.WriteLog(ELogLevel.INFO,
                                                   "Exiting SolrIndexManager.AddDocument, Result: " +
                                                   result.ToString());

            return(response);
        }
示例#21
0
        public async Task Function(SNSEvent snsEvent, ILambdaContext context)
        {
            foreach (var record in snsEvent.Records)
            {
                context.Logger.LogLine(record.Sns.Message);

                AdvertConfirmedMessage message        = JsonConvert.DeserializeObject <AdvertConfirmedMessage>(record.Sns.Message);
                AdvertType             advertDocument = MappingHelper.Map(message);

                IndexResponse response = await _client.IndexDocumentAsync(advertDocument);

                context.Logger.LogLine("Result is " + response.Result.ToString());
                context.Logger.LogLine("Exception: " + response.OriginalException?.Message);
                context.Logger.LogLine("Server error: " + response.ServerError);
            }
        }
        public IndexResponse Index <T>(T data, string indexName) where T : class
        {
            IndexResponse response = null;

            try
            {
                //写入数据,指定索引
                response = elasticClient.Index(data, s => s.Index(indexName.ToLower()));
            }
            catch (Exception ex)
            {
                var    e   = (ElasticsearchClientException)ex;
                string msg = e.Response.OriginalException.Message;
            }
            return(response);
        }
示例#23
0
        public override async Task <object> Get(string environment, HttpContext context)
        {
            string html = await File.ReadAllTextAsync(HtmlContent);

            int headIndex = html.IndexOf("</head>", StringComparison.Ordinal);

            html = html.Insert(headIndex, $"<link href=\"{ CssContent }\" rel=\"stylesheet\" />");
            IndexResponse details = await GetApiDetails(environment);

            html = html.ReplaceParams(GetParamDictionary(details));

            byte[] buffer = Encoding.UTF8.GetBytes(html);
            context.Response.Body.Write(buffer, 0, buffer.Length);

            return(null);
        }
示例#24
0
        private static async Task <IndexResponse> ConnectAndInsertDataAsync(ElasticClient client, Car car) // Here RawData is a object of a Class. you can create a class with few sample properties and can pass in the form of JSON from Postman
        {
            IndexResponse response = new IndexResponse();

            try
            {
                response = await client.IndexAsync(car, i => i.Index("cars"));

                Console.WriteLine(response);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Oooops!" + ex);
            }
            return(response);
        }
示例#25
0
        protected string Index <T>(string _default_index, T data) where T : class
        {
            IndexRequest <object> req = new IndexRequest <object>(_default_index, typeof(T));

            //string json_doc = Newtonsoft.Json.JsonConvert.SerializeObject(data);
            //Regex regex = new Regex(reg_null_or_must_remove);
            //json_doc = regex.Replace(json_doc, string.Empty);
            //regex = new Regex(reg_array_null);
            //json_doc = regex.Replace(json_doc, "[]");
            //var ob_up = Newtonsoft.Json.JsonConvert.DeserializeObject(json_doc);
            req.Document = data;
            IndexResponse re = null;

            re = client.Index(req);

            return(re.Id);
        }
 private void OnIndexDocuments(IndexResponse resp, string data)
 {
     if (resp != null)
     {
         if (resp.responseHeader != null)
         {
             Log.Debug("ExampleRetrieveAndRank", "OnIndexDocuments | status: {0}, QTime: {1}", resp.responseHeader.status, resp.responseHeader.QTime);
         }
         else
         {
             Log.Debug("ExampleRetrieveAndRank", "OnIndexDocuments | Response header is null!");
         }
     }
     else
     {
         Log.Debug("ExampleRetrieveAndRank", "OnIndexDocuments | response is null!");
     }
 }
示例#27
0
        /// <summary>
        /// 插入单个文档
        /// </summary>
        /// <param name="entity">文档</param>
        /// <param name="indexName">索引名称</param>
        /// <param name="_id">自定义编号</param>
        /// <returns></returns>
        public async Task <bool> AddDocumentAsync(string indexName, string _id, TEntity entity)
        {
            var response = new IndexResponse();

            if (_id.Length > 0)
            {
                response = await Client.IndexAsync(entity, x => x.Index(indexName.ToLower()).Id(_id));
            }
            else
            {
                response = await Client.IndexAsync(entity, x => x.Index(indexName.ToLower()));
            }
            if (response.Shards.Successful > 0)
            {
                return(true);
            }
            return(false);
        }
示例#28
0
        /// <summary>
        /// This method removes an index from Mongo
        /// </summary>
        /// <param name="query">IndexRequest containing delete criteria</param>
        /// <returns>IndexResponse indicating success or failure</returns>
        public IndexResponse RemoveDocument(IndexRequest query)
        {
            GenericStorageExtensionLogger.WriteLog(ELogLevel.INFO, "Entering MI4TIndexManager.RemoveDocument for TCM URI: " +
                                                   query.ItemURI);
            IndexResponse response = new IndexResponse();

            OperationResult result = OperationResult.Failure;

            try
            {
                MongoServerSettings settings = new MongoServerSettings();
                settings.Server = new MongoServerAddress("localhost", 27017);
                // Create server object to communicate with our server
                MongoServer server = new MongoServer(settings);

                MongoDatabase myDB = server.GetDatabase("customerDatabase");

                MongoCollection <BsonDocument> records = myDB.GetCollection <BsonDocument>("article");
                var query1 = Query.EQ("ItemURI", query.ItemURI);
                records.Remove(query1);

                result = OperationResult.Success;
                GenericStorageExtensionLogger.WriteLog(ELogLevel.INFO, "Exit MI4TIndexManager.RemoveDocument for TCM URI: " +
                                                       query.ItemURI + " result " + result);
            }
            catch (Exception ex)
            {
                string logString = GenericStorageExtensionServiceConstants.LOG_MESSAGE + Environment.NewLine;
                logString = string.Concat(logString,
                                          string.Format("Item URI : {0}", query.ItemURI),
                                          Environment.NewLine, string.Format("{0}{1}", ex.Message, ex.StackTrace));
                GenericStorageExtensionLogger.WriteLog(ELogLevel.ERROR, logString);
                result = OperationResult.Failure;
            }

            response.Result = (int)result;

            GenericStorageExtensionLogger.WriteLog(ELogLevel.INFO,
                                                   "Exiting MI4TIndexManager.RemoveDocument, Result: " +
                                                   result.ToString());

            return(response);
        }
示例#29
0
        protected bool Index <T>(string _DefaultIndex, T data, string route, out string id) where T : class
        {
            id = "";
            IndexRequest <T> req = new IndexRequest <T>(_DefaultIndex, new Nest.Id(id_gen.CreateId()));

            if (!string.IsNullOrEmpty(route))
            {
                req.Routing = route;
            }
            req.Document = data;
            IndexResponse re = null;

            re = client.Index(req);
            if (re.Result == Result.Created)
            {
                id = re.Id;
            }
            return(re.Result == Result.Created);
        }
        public IActionResult Index(IndexRequest model)
        {
            var viewModel = new IndexResponse();

            if (!model.ContainsValidColors())
            {
                throw new Exception("Invalid colors.");
            }

            viewModel.Color1 = model.Color1;
            viewModel.Color2 = model.Color2;
            viewModel.Color3 = model.Color3;
            viewModel.Color4 = model.Color4;
            viewModel.Color5 = model.Color5;

            viewModel.ColorSwatches = colorSwatches;

            return(View(viewModel));
        }