Example #1
0
 void SetAdditionalAttribute(List <float[]> data)
 {
     AdditionalAttribute = new List <global::AdditionalModel>();
     for (int i = 0; i < data.Count; i++)
     {
         var additiona = new AdditionalModel(data[i]);
         AdditionalAttribute.Add(additiona);
     }
 }
        public async Task<Result<List<AdditionalModel>>> GetBatchAdditional(List<string> ids)
        {
            bool ok = false;
            string message = "";
            List<AdditionalModel> result = new List<AdditionalModel>();

            try
            {

                var queryOptions = new QueryRequestOptions
                {
                    PartitionKey = new PartitionKey(_partitionId),
                    MaxItemCount = ids.Count
                };
                var change = "";
                foreach(var item in ids)
                {
                    change += "'" + item + "',";
                }
                change = change.Remove(change.Length - 1);
                var query = $"select * from d where ARRAY_CONTAINS([" + change +  "], d.id)";

                using (FeedIterator<UserPrivateDataModel> feedIterator = RepositoryContainer.GetItemQueryIterator<UserPrivateDataModel>(
                   query,
                   null,
                   queryOptions))
                {
                    while (feedIterator.HasMoreResults)
                    {
                        foreach (var item in await feedIterator.ReadNextAsync())
                        {
                            AdditionalModel modelAdd = new AdditionalModel();
                            modelAdd.Id = item.id;
                            modelAdd.Scopes = item.Scopes;
                            modelAdd.Tenants = item.Tenants;
                            modelAdd.Block = item.Block;
                            modelAdd.ValidEmail = item.ValidEmail;
                            result.Add(modelAdd);
                        }
                    }
                }

                ok = true;
            }
            catch (CosmosException ex)
            {
                message = ex.Message;
            }
            catch (Exception ex)
            {
                message = ex.Message;
            }

            return _result.Create(ok, message, result);
        }
Example #3
0
    /// <summary>
    /// 是否满足使用/装备条件
    /// </summary>
    /// <param name="character"></param>
    /// <returns></returns>
    public bool IsWear(UnitModel character)
    {
        AdditionalModel model = null;

        for (int i = 0; i < needAttribute.data.Count; i++)
        {
            model = needAttribute.data[i];
            if (character[(DataEnum)model.Type] < model.value)
            {
                return(false);
            }
        }
        for (int i = 0; i < needAttribute.attribute.Count; i++)
        {
            model = needAttribute.attribute[i];
            if (character[(AttributeEnum)model.Type] < model.value)
            {
                return(false);
            }
        }
        for (int i = 0; i < needAttribute.resistance.Count; i++)
        {
            model = needAttribute.resistance[i];
            if (character[(ResistanceEnum)model.Type] < model.value)
            {
                return(false);
            }
        }
        for (int i = 0; i < needAttribute.skill.Count; i++)
        {
            model = needAttribute.skill[i];
            if (character[(skillEnum)model.Type] < model.value)
            {
                return(false);
            }
        }
        return(true);
    }
        public async Task<Result<AdditionalModel>> GetAdditional(string id)
        {
            bool ok = false;
            string message = "";
            AdditionalModel result = new AdditionalModel();

            try
            {

                var queryOptions = new QueryRequestOptions
                {
                    PartitionKey = new PartitionKey(_partitionId),
                    MaxItemCount = 1
                };

                var key = new PartitionKey(_partitionId);
                UserPrivateDataModel model = await RepositoryContainer.ReadItemAsync<UserPrivateDataModel>(id, key,
                    new ItemRequestOptions { });
                if(model != null)
                {
                    result.Scopes = model.Scopes;
                    result.Tenants = model.Tenants;
                    result.ValidEmail = model.ValidEmail;
                    result.Block = model.Block;
                }
                ok = true;
            }
            catch (CosmosException ex)
            {
                message = ex.Message;
            }
            catch (Exception ex)
            {
                message = ex.Message;
            }

            return _result.Create(ok, message, result);
        }