コード例 #1
0
            /// <summary>指定位置の要素を取得する。</summary>
            /// <param name="index">削除するインデックス。</param>
            /// <param name="parent">木構造。</param>
            /// <param name="remove">削除状態。</param>
            /// <returns>バランス調整が必要ならば真。</returns>
            public bool RemoveAt(int index, BPlusTree <T> parent, ref RemoveResult remove)
            {
                if (remove.countIndex <= index && index < remove.countIndex + this.Count)
                {
                    // 項目を削除する
                    var i = index - remove.countIndex;
                    if (i < this.Count - 1)
                    {
                        Array.Copy(this.value, i + 1, this.value, i, this.Count - (i + 1));
                    }
#if DEBUG
                    Array.Clear(this.value, this.Count - 1, 1);
#endif
                    // 項目数を減少
                    this.Count--;
                    parent.Count--;

                    return(true);
                }
                else
                {
                    remove.countIndex += this.Count;
                    return(false);
                }
            }
コード例 #2
0
        public JsonResult RemoveSection(int sectionID)
        {
            var result = new RemoveResult();

            if (!Request.IsAjaxRequest())
            {
                throw new InvalidCastException("Not an ajax request");
            }

            try
            {
                var section = _shopService.GetSection(sectionID);
                if (section.CategoryParameter.Any())
                {
                    result.Result  = false;
                    result.Message =
                        "Секция имеет параметры. В начале нужно удалить параметры, а затем секцию.";
                    return(Json(result));
                }
                _shopService.RemoveSection(section);
                result.Result  = true;
                result.Message = "Удалено";
                return(Json(result));
            }
            catch
            {
                result.Result  = false;
                result.Message = "Что-то пошло не так";
                return(Json(result));
            }
        }
コード例 #3
0
        /// <summary>
        /// Create Remove Contaminant Peak Result.
        /// </summary>
        /// <param name="scanNumbers">Scan Numbers</param>
        /// <param name="tempDir">Temporal Directory</param>
        /// <param name="ms1List">MS1 List</param>
        /// <returns>Remove Contaminant Peak Result</returns>
        private RemoveResult CreateRemoveResult(
            int scanNumbers, string tempDir,
            List <SpectrumWrapper> ms1List)
        {
            RemoveResult result = new RemoveResult();

            for (int i = 0; i < scanNumbers; i++)
            {
                if (UpdateProgress != null)
                {
                    UpdateProgress(
                        PROGRESS_REMOVECONTAMINANT_PHASE.READ_FROM_TEMPORARY,
                        i, scanNumbers);
                }
                using (StreamReader sr = new StreamReader(tempDir + @"\Scan" + i.ToString() + ".csv"))
                {
                    ClrDataPoints pts = new ClrDataPoints();
                    while (!sr.EndOfStream)
                    {
                        string[] splitLine = sr.ReadLine().Split(',');
                        double   x         = double.Parse(splitLine[0]);
                        double   y         = double.Parse(splitLine[1]);
                        pts.addPoint(x, y);
                    }
                    result.AddResult(pts, ms1List[i]);
                }
            }

            return(result);
        }
コード例 #4
0
        public JsonResult RemoveParametr(int paramID)
        {
            var result = new RemoveResult();

            if (!Request.IsAjaxRequest())
            {
                throw new InvalidCastException("Not an ajax request");
            }

            try
            {
                var param = _shopService.GetParametr(paramID);
                if (param.ProductParameterValue.Any())
                {
                    result.Result  = false;
                    result.Message =
                        "Параметр имеет связанные данные. Для удаления этого параметра обратитесь к администратору сайта";
                    return(Json(result));
                }
                _shopService.RemoveParametr(param);
                result.Result  = true;
                result.Message =
                    "Удалено";
                return(Json(result));
            }
            catch
            {
                result.Result  = false;
                result.Message = "Что-то пошло не так";
                return(Json(result));
            }
        }
コード例 #5
0
        public void passing_a_null_not_found_action_to_match_is_invalid()
        {
            var result = RemoveResult <object> .WasSuccess(new object());

            var act = (Action)(() => result.Match(v => { }, null));

            Assert.Throws <ArgumentNullException>(act);
        }
コード例 #6
0
 public static RemoveResult ToRemoveResult(this RemoveRequest.Result data)
 {
     var res = new RemoveResult
     {
         IsSuccess = data.status == 200
     };
     return res;
 }
コード例 #7
0
        public void passing_a_null_to_then_is_invalid()
        {
            var result = RemoveResult <object> .WasSuccess(new object());

            var act = (Action)(() => result.Then <object>(null));


            Assert.Throws <ArgumentNullException>(act);
        }
コード例 #8
0
        public void passing_a_null_action_to_then_with_an_action_that_accepts_no_arguments_is_invalid()
        {
            var action = (Action)null;
            var result = RemoveResult <object> .WasSuccess(new object());

            var act = (Action)(() => result.Then(action));

            Assert.Throws <ArgumentNullException>(act);
        }
コード例 #9
0
        public void passing_a_null_success_function_to_match_is_invalid()
        {
            var unit   = new object();
            var result = RemoveResult <object> .WasSuccess(new object());

            var act = (Action)(() => result.Match(null, () => unit));

            Assert.Throws <ArgumentNullException>(act);
        }
コード例 #10
0
        public static RemoveResult ToRemoveResult(this CommonOperationResult <string> data)
        {
            var res = new RemoveResult
            {
                IsSuccess = data.Status == 200
            };

            return(res);
        }
コード例 #11
0
        public static RemoveResult ToRemoveResult(this YadResponceModel <YadDeleteRequestData, YadDeleteRequestParams> data)
        {
            var res = new RemoveResult
            {
                IsSuccess = true
            };

            return(res);
        }
コード例 #12
0
        public static ItemOperation ToItemOperation(this RemoveResult data)
        {
            var res = new ItemOperation
            {
                DateTime = data.DateTime,
                Path     = data.Path
            };

            return(res);
        }
コード例 #13
0
        public void then_with_an_action_that_accepts_no_arguments_will_ignore_the_action_if_it_is_not_a_success()
        {
            var action_applied = false;
            var result         = RemoveResult <object> .WasNotFound();

            result.Then(() => action_applied = true);


            Assert.False(action_applied);
        }
コード例 #14
0
        public void then_with_an_action_that_accepts_no_arguments_will_apply_the_action_if_it_is_a_success()
        {
            var action_applied = false;
            var result         = RemoveResult <object> .WasSuccess(new object());


            result.Then(() => action_applied = true);


            Assert.True(action_applied);
        }
コード例 #15
0
        public void can_create_a_not_found_result()
        {
            var result = RemoveResult <object> .WasNotFound();

            result
            .Match(
                success: value => Assert.False(true),
                notFound: () => Assert.True(true)

                );
        }
コード例 #16
0
        public static RemoveResult ToRemoveResult(this YadResponseModel <YadDeleteRequestData, YadDeleteRequestParams> data)
        {
            var res = new RemoveResult
            {
                IsSuccess = true,
                DateTime  = DateTime.Now,
                Path      = data.Params.Id.Remove(0, "/disk".Length)
            };

            return(res);
        }
コード例 #17
0
        public void can_create_a_success_result()
        {
            var expected = new object();
            var result   = RemoveResult <object> .WasSuccess(expected);

            result
            .Match(
                success: value => Assert.Equal(expected, value),
                notFound: () => Assert.False(true)
                );
        }
コード例 #18
0
        public void then_will_apply_the_transformation_if_it_is_a_success()
        {
            var expected = new object();
            var result   = RemoveResult <object> .WasSuccess(new object());

            result
            .Then(v => expected)
            .Match(
                success: value => Assert.Equal(expected, value),
                notFound: () => Assert.False(true)
                );
        }
コード例 #19
0
        public void then_with_an_action_that_accepts_no_arguments_returns_the_original_value()
        {
            var expected = new object();
            var result   = RemoveResult <object> .WasSuccess(expected);

            result
            .Then(() => { })
            .Match(
                success: value => Assert.Equal(expected, value),
                notFound: () => Assert.False(true)
                );
        }
コード例 #20
0
 /// <summary>指定位置の要素を取得する。</summary>
 /// <param name="index">削除するインデックス。</param>
 /// <param name="parent">木構造。</param>
 /// <param name="remove">削除状態。</param>
 /// <returns>バランス調整が必要ならば真。</returns>
 public bool RemoveAt(int index, BPlusTree <T> parent, ref RemoveResult remove)
 {
     for (int i = 0; i < this.Count; ++i)
     {
         if (this.value[i].RemoveAt(index, parent, ref remove))
         {
             if (this.value[i].Count <= parent.mSize)
             {
                 this.BalanceChangeOfBParts(parent, i);
             }
             return(true);
         }
     }
     return(false);
 }
コード例 #21
0
        /// <summary>指定位置の要素を取得する。</summary>
        /// <param name="index">削除するインデックス。</param>
        public void RemoveAt(int index)
        {
            var remove = new RemoveResult();

            if (this.root == null)
            {
                this.start.RemoveAt(index, this, ref remove);
            }
            else
            {
                if (this.root.RemoveAt(index, this, ref remove))
                {
                    this.RelinkRoot();
                }
            }
        }
コード例 #22
0
        //--------------------------------------------------------------------
        // 削除
        //--------------------------------------------------------------------
        /// <summary>指定要素を削除する。</summary>
        /// <param name="item">削除する要素。</param>
        /// <returns></returns>
        public bool Remove(T item)
        {
            var remove = new RemoveResult();

            if (this.root == null)
            {
                this.start.Remove(item, this, ref remove);
            }
            else
            {
                if (this.root.Remove(item, this, ref remove))
                {
                    this.RelinkRoot();
                }
            }
            return(remove.changed);
        }
コード例 #23
0
            //---------------------------------------------------------------------
            // 削除
            //---------------------------------------------------------------------
            /// <summary>指定要素を取得する。</summary>
            /// <param name="item">削除する要素。</param>
            /// <param name="parent">木構造。</param>
            /// <param name="remove">削除状態。</param>
            /// <returns>バランス調整が必要ならば真。</returns>
            public bool Remove(T item, BPlusTree <T> parent, ref RemoveResult remove)
            {
                int lf = 0;
                int rt = this.Count - 1;
                int md;

                // 削除要素の検索
                while (lf < rt)
                {
                    md = lf + (rt - lf) / 2 + 1;

                    if (parent.defComp.Compare(this.value[md].HeaderItem, item) >= 0)
                    {
                        rt = md - 1;
                    }
                    else
                    {
                        lf = md;
                    }
                }

                // 要素を削除する
                if (this.value[lf].Remove(item, parent, ref remove))
                {
                    if (this.value[lf].Count <= parent.mSize)
                    {
                        this.BalanceChangeOfBParts(parent, lf);
                    }
                    return(true);
                }
                else if (lf + 1 < this.Count &&
                         parent.defComp.Compare(this.value[lf + 1].HeaderItem, item) == 0 &&
                         this.value[lf + 1].Remove(item, parent, ref remove))
                {
                    if (this.value[lf + 1].Count <= parent.mSize)
                    {
                        this.BalanceChangeOfBParts(parent, lf + 1);
                    }
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
コード例 #24
0
            //---------------------------------------------------------------------
            // 削除
            //---------------------------------------------------------------------
            /// <summary>指定要素を取得する。</summary>
            /// <param name="item">削除する要素。</param>
            /// <param name="parent">木構造。</param>
            /// <param name="remove">削除状態。</param>
            /// <returns>バランス調整が必要ならば真。</returns>
            public bool Remove(T item, BPlusTree <T> parent, ref RemoveResult remove)
            {
                int lf = 0;
                int rt = this.Count;
                int md;

                // 位置の検索
                while (lf < rt)
                {
                    md = lf + (rt - lf) / 2;

                    if (parent.defComp.Compare(this.value[md], item) < 0)
                    {
                        lf = md + 1;
                    }
                    else
                    {
                        rt = md;
                    }
                }

                if (lf < this.Count &&
                    parent.defComp.Compare(this.value[lf], item) == 0)
                {
                    if (lf < this.Count - 1)
                    {
                        Array.Copy(this.value, lf + 1, this.value, lf, this.Count - (lf + 1));
                    }
#if DEBUG
                    Array.Clear(this.value, this.Count - 1, 1);
#endif
                    // 項目数を減少
                    this.Count--;
                    parent.Count--;
                    remove.changed = true;
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
コード例 #25
0
        public void passing_a_null_success_value_is_not_valid()
        {
            var act = (Action)(() => RemoveResult <object> .WasSuccess(null));

            Assert.Throws <ArgumentNullException>(act);
        }
コード例 #26
0
        public void then_will_ignore_the_transformation_if_it_is_not_found()
        {
            var result = RemoveResult <object> .WasNotFound();

            result.Then <object>(v => { throw new Exception(); });
        }