示例#1
0
        public async Task <IActionResult> SetBlock([FromBody] BlockData data)
        {
            string token = this.GetToken();

            if (!db.IsAuthenticated(token))
            {
                return(Unauthorized());
            }

            if (!this.CanDoPart(data.Block.PortalPartId))
            {
                return(Unauthorized());
            }

            var block = db.SetBlock(data);
            var bt    = db.GetBlockType(block.BlockTypeId);

            if (bt.IsSearchable)
            {
                Task.Run(() => SolrComm.UpdateBlock(block));
            }
            this.SaveUserAction(this.GetUserAction("Запис на част", JObject.FromObject(data).ToString()));

            return(Ok());
        }
示例#2
0
        public async Task <IActionResult> Reindex()
        {
            string token = this.GetToken();

            if (!db.IsAuthenticated(token))
            {
                return(Unauthorized());
            }
            await Task.Run(() =>
            {
                SolrComm.DeleteAll();
                int top        = 0;
                int count      = 50;
                Block[] blocks = null;
                do
                {
                    blocks = db.GetNextIndexableBlocks(top, count);
                    foreach (var b in blocks)
                    {
                        SolrComm.UpdateBlock(b);
                    }
                    top += count;
                } while (count == blocks.Length);
            });

            return(Ok());
        }