private static List <BranchStatus> ParseBranchResult(string path, XmlDocument xmlDoc)
        {
            if (!xmlDoc.HasChildNodes)
            {
                return(null);
            }

            List <BranchStatus> branchStatuses = new List <BranchStatus>();
            XmlNodeList         entries        = xmlDoc.GetElementsByTagName("entry");

            foreach (XmlNode entryIt in entries)
            {
                if (entryIt != null && entryIt.Attributes["kind"].InnerText == "dir")
                {
                    var          commitEntry  = entryIt["commit"];
                    BranchStatus branchStatus = new BranchStatus
                    {
                        name     = path + entryIt["name"].InnerText,
                        author   = commitEntry["author"].InnerText,
                        date     = DateTime.Parse(commitEntry["date"].InnerText, null, DateTimeStyles.RoundtripKind),
                        revision = Int32.Parse(commitEntry.Attributes["revision"].InnerText)
                    };
                    branchStatuses.Add(branchStatus);
                }
            }
            return(branchStatuses);
        }
Beispiel #2
0
        public void Run()
        {
            AutomatrLog.Log("Loaded area " + Config.Path + "... ", false);
            m_Area = Area.Load(new DirectoryInfo(Config.Path));
            AutomatrLog.Log("Done");
            AutomatrLog.Log("Creating Client... ", false);
            m_Client = new Client(m_Area);
            AutomatrLog.Log("Done.");

            if (!Connect())
            {
                AutomatrLog.Log("Connection Failed!", AutomatrLog.LogLevel.Error);
                Environment.Exit(1);
            }
            AutomatrLog.Log("Connection successful.");
            BranchStatus status = GetStatus();

            AutomatrLog.Log("Branch status: " + status);
            if (status == BranchStatus.Behind || Program.Options.Force)
            {
                RunTasks();
            }
        }
Beispiel #3
0
        private static async void Refresh()
        {
            try
            {
                if (!branchpath.EndsWith("/"))
                {
                    branchpath += "/";
                }
                if (VCCommands.Active)
                {
                    branches = await VCCommands.Instance.RemoteListTask(BranchPath);

                    var trunkInfo = VCCommands.Instance.GetInfo(trunkpath);
                    var trunk     = new BranchStatus()
                    {
                        name     = trunkpath,
                        author   = trunkInfo.author,
                        date     = trunkInfo.lastChangedDate,
                        revision = trunkInfo.revision
                    };
                    branches.Insert(0, trunk);
                    RefreshBranchList();
                    currentBranch = await VCCommands.Instance.GetCurrentBranchTask();

                    await VCCommands.Instance.StatusTask(StatusLevel.Previous, DetailLevel.Normal);

                    if (instance != null)
                    {
                        instance.Repaint();
                    }
                }
            }
            catch (Exception e)
            {
                Debug.LogException(e);
            }
        }
Beispiel #4
0
        /// <summary>
        /// درج مقادیر اولیه در دیتابیس به هنگام ساخت دیتابیس
        /// </summary>
        /// <param name="context">شی دیتابیس اصلی برنامه</param>
        protected override void Seed(AsefianContext context)
        {
            foreach (var item in Language.GetList())
            {
                context.Language.Add(item);
            }
            #region Account
            foreach (var item in UserType.GetList())
            {
                context.UserType.Add(item);
            }
            foreach (var item in BalanceType.GetList())
            {
                context.BalanceType.Add(item);
            }
            foreach (var item in Browser.GetList())
            {
                context.Browser.Add(item);
            }
            foreach (var item in DeviceType.GetList())
            {
                context.DeviceType.Add(item);
            }
            foreach (var item in GroupStatus.GetList())
            {
                context.GroupStatus.Add(item);
            }
            foreach (var item in NotificationStatus.GetList())
            {
                context.NotificationStatus.Add(item);
            }
            foreach (var item in NotificationType.GetList())
            {
                context.NotificationType.Add(item);
            }
            foreach (var item in Account.Enum.OperatingSystem.GetList())
            {
                context.OperatingSystem.Add(item);
            }
            foreach (var item in Sex.GetList())
            {
                context.Sex.Add(item);
            }
            foreach (var item in TokenType.GetList())
            {
                context.TokenType.Add(item);
            }
            foreach (var item in UserAddressStatus.GetList())
            {
                context.UserAddressStatus.Add(item);
            }
            foreach (var item in UserFavoriteFolderStatus.GetList())
            {
                context.UserFavoriteFolderStatus.Add(item);
            }
            foreach (var item in UserFavoriteStatus.GetList())
            {
                context.UserFavoriteStatus.Add(item);
            }
            foreach (var item in UserStatus.GetList())
            {
                context.UserStatus.Add(item);
            }
            #endregion

            #region Blog

            foreach (var item in ArticleFileStatus.GetList())
            {
                context.ArticleFileStatus.Add(item);
            }

            foreach (var item in ArticleStatus.GetList())
            {
                context.ArticleStatus.Add(item);
            }

            foreach (var item in NewsStatus.GetList())
            {
                context.NewsStatus.Add(item);
            }
            #endregion

            #region Core
            foreach (var item in BranchStatus.GetList())
            {
                context.BranchStatus.Add(item);
            }
            foreach (var item in LocationType.GetList())
            {
                context.LocationType.Add(item);
            }
            foreach (var item in SliderContentStatus.GetList())
            {
                context.SliderContentStatus.Add(item);
            }
            foreach (var item in SliderStatus.GetList())
            {
                context.SliderStatus.Add(item);
            }
            foreach (var item in SliderType.GetList())
            {
                context.SliderType.Add(item);
            }
            #endregion

            #region Data
            foreach (var item in ExportStatus.GetList())
            {
                context.ExportStatus.Add(item);
            }
            foreach (var item in ContactUsStatus.GetList())
            {
                context.ContactUsStatus.Add(item);
            }
            foreach (var item in SpecialProjectStatus.GetList())
            {
                context.SpecialProjectStatus.Add(item);
            }
            foreach (var item in SpecialProjectFileStatus.GetList())
            {
                context.SpecialProjectFileStatus.Add(item);
            }
            foreach (var item in BrandStatus.GetList())
            {
                context.BrandStatus.Add(item);
            }
            foreach (var item in CategoryFeatureStatus.GetList())
            {
                context.CategoryFeatureStatus.Add(item);
            }
            foreach (var item in CategoryFeatureType.GetList())
            {
                context.CategoryFeatureType.Add(item);
            }
            foreach (var item in CategoryStatus.GetList())
            {
                context.CategoryStatus.Add(item);
            }
            foreach (var item in CategoryType.GetList())
            {
                context.CategoryType.Add(item);
            }
            foreach (var item in DownloadCenterStatus.GetList())
            {
                context.DownloadCenterStatus.Add(item);
            }
            foreach (var item in ProductFileStatus.GetList())
            {
                context.ProductFileStatus.Add(item);
            }
            foreach (var item in ProductFileType.GetList())
            {
                context.ProductFileType.Add(item);
            }
            foreach (var item in ProductFilterStatus.GetList())
            {
                context.ProductFilterStatus.Add(item);
            }
            foreach (var item in ProductFilterType.GetList())
            {
                context.ProductFilterType.Add(item);
            }
            foreach (var item in ProductFilterValueStatus.GetList())
            {
                context.ProductFilterValueStatus.Add(item);
            }
            foreach (var item in ProductStatus.GetList())
            {
                context.ProductStatus.Add(item);
            }
            foreach (var item in ServiceStatus.GetList())
            {
                context.ServiceStatus.Add(item);
            }
            #endregion

            #region Financial
            foreach (var item in CouponStatus.GetList())
            {
                context.CouponStatus.Add(item);
            }
            foreach (var item in CouponType.GetList())
            {
                context.CouponType.Add(item);
            }
            foreach (var item in DeliveryType.GetList())
            {
                context.DeliveryType.Add(item);
            }
            foreach (var item in InquiryStatus.GetList())
            {
                context.InquiryStatus.Add(item);
            }
            foreach (var item in InvoiceDetailStatus.GetList())
            {
                context.InvoiceDetailStatus.Add(item);
            }
            foreach (var item in InvoiceStatus.GetList())
            {
                context.InvoiceStatus.Add(item);
            }
            foreach (var item in PaymentType.GetList())
            {
                context.PaymentType.Add(item);
            }
            #endregion

            #region Support
            foreach (var item in FaqCategoryStatus.GetList())
            {
                context.FaqCategoryStatus.Add(item);
            }
            foreach (var item in FaqStatus.GetList())
            {
                context.FaqStatus.Add(item);
            }
            foreach (var item in MessageBoxStatus.GetList())
            {
                context.MessageBoxStatus.Add(item);
            }
            foreach (var item in NewsLetterStatus.GetList())
            {
                context.NewsLetterStatus.Add(item);
            }
            foreach (var item in TicketMessageType.GetList())
            {
                context.TicketMessageType.Add(item);
            }
            foreach (var item in TicketPriority.GetList())
            {
                context.TicketPriority.Add(item);
            }
            foreach (var item in TicketStatus.GetList())
            {
                context.TicketStatus.Add(item);
            }
            foreach (var item in MessageType.GetList())
            {
                context.MessageType.Add(item);
            }
            #endregion

            var admin = new User()
            {
                FirstName         = "مدیر",
                LastName          = "سیستم",
                MobileNumber      = "09122424519",
                MobileNumberValid = true,
                Email             = "*****@*****.**",
                EmailValid        = true,
                SexId             = Sex.Male.Id,
                TypeId            = UserType.Insider.Id,
                Password          = PasswordUtility.Encrypt("alialiali"),
                StatusId          = UserStatus.Active.Id,
                Permission        = 1,
                CreateDate        = DateTime.Now,
                ModifyDate        = DateTime.Now,
                CreateIp          = "::1",
                ModifyIp          = "::1"
            };
            context.User.Add(admin);
        }
        protected void GenerateSolutions(TState state, int stage,
                                         out BranchStatus status, out double bestValue,
                                         List <SolutionNode <TState, TDecision> > bestSolutionNodes)
        {
            bestValue = 0.0;

            /* Start by deciding whether it is worth continuing or not.
             *
             * There are various reasons why it might be time to stop:
             *   1. There is no feasible solution in this branch.
             *   2. There is no more Value to be extracted from this branch.
             *      It is now a complete feasible solution.
             *   3. Some arbitrary (i.e. problem-specific)
             *      stopping condition has been encountered.
             *   4. There are no more initialSolutionNodes which can be taken
             *      at this point. This is treated as a special case
             *      of reason 2, unless in the very first stage
             *      (to prevent completely decisionless solutions)!
             *
             * The GetBranchStatus() function allows one of the first
             * three reasons to be tested for.
             */
            status = GetBranchStatus(state, stage);

            if ((status == BranchStatus.Infeasible) ||
                (status == BranchStatus.Complete))
            {
                return;
            }

            /* Now search for an optimimal solution from this stage forward:
             *
             * NB: The contents of the block of the foreach loop
             *     should ideally be refactored into a new method.
             *     I haven't done this because the recursive call is
             *     inside this block, and I don't want to double the
             *     depth of the call stack.
             */
            foreach (TDecision dec in GenerateDecisions(state))
            {
                TState       newState = GenerateNewState(state, dec, stage);
                BranchStatus subBranchStatus;
                double       value;
                /* Value of the sub-problem from this stage forwards */
                List <SolutionNode <TState, TDecision> > nextSolutionNodes
                    = new List <SolutionNode <TState, TDecision> >();

                GenerateSolutions(newState, stage + 1, out subBranchStatus,
                                  out value, nextSolutionNodes);

                /* Skip initialSolutionNodes that lead to infeasible branches: */
                if (subBranchStatus == BranchStatus.Infeasible)
                {
                    continue;
                }

                /* Calculate the contribution of the current decision
                 * to the value of itself and its best sub-branch/es:
                 */
                double contribution = GetDecisionValue(state, dec, stage);
                value += contribution;

                /* Only consider this decision if it is the
                 * first solution found, or if it is at least
                 * as good as the best solution found:
                 */
                if ((bestSolutionNodes.Count == 0) || (value >= bestValue))
                {
                    SolutionNode <TState, TDecision> newSolutionNode
                        = CreateSolutionNode(newState, dec, contribution,
                                             nextSolutionNodes);

                    if (bestSolutionNodes.Count == 0)
                    {
                        bestValue = value;
                    }
                    else
                    {
                        if (value > bestValue)
                        {
                            bestSolutionNodes.Clear();
                            bestValue = value;
                        }
                    }

                    bestSolutionNodes.Add(newSolutionNode);
                }
            }

            if (bestSolutionNodes.Count == 0)
            {
                status = BranchStatus.Infeasible;
            }
            else
            {
                status = BranchStatus.Complete;
            }
        }