Пример #1
0
        public bool IsLessThanOrEqualTo(YearAndMonth compareTo)
        {
            var thisInMonths      = (Year * 12) + Month;
            var compareToInMonths = (compareTo.Year * 12) + compareTo.Month;

            return(thisInMonths <= compareToInMonths);
        }
 public ExportDataSourceDialog(YearAndMonth from, Func <ExportParams, Exceptional <Unit> > mergeAndExport)
 {
     InitializeComponent();
     this.mergeAndExport = mergeAndExport;
     model       = new ExportDataSourceModel(from);
     DataContext = model;
 }
Пример #3
0
        public void Test1()
        {
            var yearAndMonth = new YearAndMonth(2000, 5);

            Assert.AreEqual(5, yearAndMonth.Month);
            Assert.AreEqual(2000, yearAndMonth.Year);
        }
Пример #4
0
        public List <Call> GetCallsThisMonth(string lineNumber, YearAndMonth date)
        {
            //returns all the calls that a client made this month
            Package        package = GetPackageByLineId(lineNumber);
            PackageDetails packDet = GetPackageDetailsByPackageId(package.ID);

            return(Calls.Where(c => c.LineID == lineNumber && c.DateOfCall.Month == date.Month && c.DateOfCall.Year == date.Year).ToList());
        }
Пример #5
0
        public void Test3()
        {
            var date         = new DateTime(2000, 1, 24);
            var yearAndMonth = YearAndMonth.GetLatestMonth(date);

            Assert.AreEqual(12, yearAndMonth.Month);
            Assert.AreEqual(1999, yearAndMonth.Year);
        }
Пример #6
0
        public void Test2()
        {
            var date         = new DateTime(2000, 12, 24);
            var yearAndMonth = YearAndMonth.GetLatestYearAndMonth(date);

            Assert.AreEqual(11, yearAndMonth.Month);
            Assert.AreEqual(2000, yearAndMonth.Year);
        }
Пример #7
0
        public List <SMS> GetSMSThisMonth(string lineNumber, YearAndMonth date)
        {
            //returns all the sms that a line made this month
            Package        package = GetPackageByLineId(lineNumber);
            PackageDetails packDet = GetPackageDetailsByPackageId(package.ID);

            return(SMS.Where(c => c.LineID == lineNumber && c.DateOfSMS.Month == date.Month && c.DateOfSMS.Year == date.Year).ToList());
        }
Пример #8
0
 public BillWindow(ClientBill clientBill, YearAndMonth date)
 {
     InitializeComponent();
     viewModel   = CrmContianer.container.GetInstance <IBillViewModel>();
     DataContext = viewModel;
     viewModel.GetClientBill(clientBill);
     viewModel.GetGridFromWindow(DynamicGrid);
 }
Пример #9
0
        public List <SMS> GetSMSToContactsByDate(string lineNumber, YearAndMonth date)
        {
            //returns all the sms that a client made to his contacts in this month of the year
            Package         package      = GetPackageByLineId(lineNumber);
            PackageDetails  packDet      = GetPackageDetailsByPackageId(package.ID);
            SelectedNumbers selectedNums = GetSelectedNumbersById(packDet.SelectedNumbersID);

            return(SMS.Where(c => c.LineID == lineNumber && c.DestintationNumber == selectedNums.FirstNumber || c.DestintationNumber == selectedNums.SecondNumber || c.DestintationNumber == selectedNums.ThirdNumber || c.DestintationNumber == packDet.MostCalledNumber && c.DateOfSMS.Month == date.Month && c.DateOfSMS.Year == date.Year).ToList());
        }
Пример #10
0
        public List <Call> GetCallsNotToContactsByDate(string lineNumber, YearAndMonth date)
        {
            //returns all the calls that a client made to clients other than his contacts in this month of the year
            Package         package      = GetPackageByLineId(lineNumber);
            PackageDetails  packDet      = GetPackageDetailsByPackageId(package.ID);
            SelectedNumbers selectedNums = GetSelectedNumbersById(packDet.SelectedNumbersID);

            return(Calls.Where(c => c.LineID == lineNumber && c.DestinationNumber != selectedNums.FirstNumber && c.DestinationNumber != selectedNums.SecondNumber && c.DestinationNumber != selectedNums.ThirdNumber && c.DestinationNumber != packDet.MostCalledNumber && c.DateOfCall.Month == date.Month && c.DateOfCall.Year == date.Year).ToList());
        }
Пример #11
0
 private void treeView1_DoubleClick(object sender, EventArgs e)
 {
     TreeNode selectedNode = treeView1.SelectedNode;
     if (selectedNode.Tag != null)
     {
         Result = (YearAndMonth)selectedNode.Tag;
         this.DialogResult = DialogResult.OK;
         this.Close();
     }
 }
Пример #12
0
        public void Detect_A_Year_And_Month_That_Is_Equal_To_Another()
        {
            var yearAndMonth     = new YearAndMonth(2012, 6);
            var sameYearAndMonth = new YearAndMonth(2012, 6);


            var result = yearAndMonth.IsLessThanOrEqualTo(sameYearAndMonth);


            Assert.True(result);
        }
Пример #13
0
        public void Detect_A_Year_And_Month_That_Is_Lower_Than_Another_In_A_Different_Year()
        {
            var now       = new YearAndMonth(2012, 5);
            var theFuture = new YearAndMonth(2021, 5);


            var result = now.IsLessThanOrEqualTo(theFuture);


            Assert.True(result);
        }
Пример #14
0
        public void Detect_A_Year_And_Month_That_Is_Not_Lower_Than_Another_In_A_Different_Year()
        {
            var now     = new YearAndMonth(2012, 5);
            var thePast = new YearAndMonth(2001, 5);


            var result = now.IsLessThanOrEqualTo(thePast);


            Assert.False(result);
        }
Пример #15
0
        public void Add_A_Single_Month()
        {
            var now = new YearAndMonth(2012, 6);


            var result = now.AddOneMonth();


            Assert.Equal(2012, result.Year);
            Assert.Equal(7, result.Month);
        }
Пример #16
0
 public ExportParams(
     YearAndMonth fromYearAndMonth,
     bool cloneRowsForMultipleCopies,
     string mergeFile  = "",
     string exportFile = "")
 {
     FromYearAndMonth           = fromYearAndMonth;
     CloneRowsForMultipleCopies = true;
     MergeFile  = mergeFile;
     ExportFile = exportFile;
 }
Пример #17
0
        public void Add_A_Single_Month_In_December()
        {
            var now = new YearAndMonth(2012, 12);


            var result = now.AddOneMonth();


            Assert.Equal(2013, result.Year);
            Assert.Equal(1, result.Month);
        }
Пример #18
0
        private double GetMinutesToContacts(string lineNumber, YearAndMonth Date)
        {
            //return the amount of minutes a client called his contacts
            double      sumOfMinutes    = 0;
            List <Call> callsToContacts = networkRepository.GetCallsToContactsByDate(lineNumber, Date);

            foreach (var item in callsToContacts)
            {
                sumOfMinutes += item.Duration;
            }
            return(sumOfMinutes);
        }
Пример #19
0
        public ClientBill GetBillForClientByDate(string clientId, YearAndMonth Date)
        {
            //returns a bill for all the lines of this client
            List <Receipt> recepits = new List <Receipt>();
            Client         client   = networkRepository.GetClientByID(clientId);

            foreach (var item in networkRepository.GetClientLines(clientId))
            {
                recepits.Add(GetRecipetByLineAndDate(item.Number, Date));
            }
            return(new ClientBill($"{client.LastName} {client.FirstName}", recepits, Date));
        }
Пример #20
0
        public ClientBill GetBillForSpecificLines(string clientId, YearAndMonth Date, List <string> lines)
        {
            //returns a bill for specific lines of this client
            List <Receipt> recepits = new List <Receipt>();
            Client         client   = networkRepository.GetClientByID(clientId);

            foreach (var item in lines)
            {
                recepits.Add(GetRecipetByLineAndDate(item, Date));
            }
            return(new ClientBill($"{client.LastName} {client.FirstName}", recepits, Date));
        }
Пример #21
0
        private double GetMinutesThisMonth(string lineNumber, YearAndMonth date)
        {
            //returns the minutes amount that this line called this month
            double      sumOfMinutes   = 0;
            List <Call> callsThisMonth = networkRepository.GetCallsThisMonth(lineNumber, date);

            foreach (var item in callsThisMonth)
            {
                sumOfMinutes += item.Duration;
            }
            return(sumOfMinutes);
        }
Пример #22
0
        public void Calculate_A_Single_Month_Range()
        {
            var finder = new YearsAndMonthsForRangeFinder();

            var start  = new YearAndMonth(2012, 1);
            var end    = new YearAndMonth(2012, 1);
            var result = finder.GetYearsAndMonthsForRange(start, end);

            // TODO: figure out the idiomatic way to do this in xUnit
            Assert.Equal(1, result.Count);
            Assert.Equal(2012, result[0].Year);
            Assert.Equal(1, result[0].Month);
        }
Пример #23
0
        public void Calculate_Two_Consecutive_Months_In_The_Same_Year()
        {
            var finder = new YearsAndMonthsForRangeFinder();

            var start  = new YearAndMonth(2012, 1);
            var end    = new YearAndMonth(2012, 2);
            var result = finder.GetYearsAndMonthsForRange(start, end);

            Assert.Equal(2, result.Count);
            Assert.Equal(2012, result[0].Year);
            Assert.Equal(1, result[0].Month);
            Assert.Equal(2012, result[1].Year);
            Assert.Equal(2, result[1].Month);
        }
Пример #24
0
        public double GetPriceForPackageByLine(string lineNumber, Package package, YearAndMonth Date)
        {
            //gets the price for this line with this package
            Line            line           = networkRepository.GetLineById(lineNumber);
            Package         packageForLine = networkRepository.GetPackageByLineId(line.Number);
            PackageDetails  packDetForLine = networkRepository.GetPackageDetailsByPackageId(package.ID);
            SelectedNumbers selectedNums   = networkRepository.GetSelectedNumbersById(packDetForLine.SelectedNumbersID);

            packDetForLine.UsedMinutes = GetMinutesThisMonth(lineNumber, Date);
            packDetForLine.UsedSMS     = GetSmsThisMonth(lineNumber, Date);
            double  MinutesToContacts = GetMinutesToContacts(lineNumber, Date);
            double  SMSToContacts     = GetSMSToContacts(lineNumber, Date);
            Receipt recepitForPackage = new Receipt(line.Number, package, packDetForLine, MinutesToContacts, SMSToContacts);

            return(recepitForPackage.TotalPayment);
        }
Пример #25
0
        public LineDetails GetLineDetails(string lineNumber)
        {
            //Gets the line details for the web client
            Client         client          = networkRepository.GetClientByNumber(lineNumber);
            YearAndMonth   date            = new YearAndMonth(DateTime.Now.Year, DateTime.Now.Month);
            Receipt        mainRecepit     = GetRecipetByLineAndDate(lineNumber, new YearAndMonth(DateTime.Now.Year, DateTime.Now.Month));
            List <Package> DefaultPackages = GetDefaultPackages();

            string Package1Name  = DefaultPackages[0].PackageName;
            double Package1Price = GetPriceForPackageByLine(lineNumber, DefaultPackages[0], date);
            string Package2Name  = DefaultPackages[1].PackageName;
            double Package2Price = GetPriceForPackageByLine(lineNumber, DefaultPackages[1], date);
            string Package3Name  = DefaultPackages[2].PackageName;
            double Package3Price = GetPriceForPackageByLine(lineNumber, DefaultPackages[2], date);

            return(new LineDetails(mainRecepit, GetClientValue(client), Package1Name, Package2Name, Package3Name, Package1Price, Package2Price, Package3Price));
        }
Пример #26
0
        public void Calculate_A_Year_End_Range()
        {
            var finder = new YearsAndMonthsForRangeFinder();

            var start  = new YearAndMonth(2011, 11);
            var end    = new YearAndMonth(2012, 2);
            var result = finder.GetYearsAndMonthsForRange(start, end);

            Assert.Equal(4, result.Count);
            Assert.Equal(2011, result[0].Year);
            Assert.Equal(11, result[0].Month);
            Assert.Equal(2011, result[1].Year);
            Assert.Equal(12, result[1].Month);
            Assert.Equal(2012, result[2].Year);
            Assert.Equal(1, result[2].Month);
            Assert.Equal(2012, result[3].Year);
            Assert.Equal(2, result[3].Month);
        }
Пример #27
0
        public Receipt GetRecipetByLineAndDate(string lineNumber, YearAndMonth Date)
        {
            //gets a recepit for this month of the year
            Line line = networkRepository.GetLineById(lineNumber);

            if (LineExistedAtDate(lineNumber, Date))
            {
                Package         package           = networkRepository.GetPackageByLineId(line.Number);
                PackageDetails  packDet           = networkRepository.GetPackageDetailsByPackageId(package.ID);
                SelectedNumbers selectedNums      = networkRepository.GetSelectedNumbersById(packDet.SelectedNumbersID);
                double          MinutesToContacts = GetMinutesToContacts(lineNumber, Date);
                double          SMSToContacts     = GetSMSToContacts(lineNumber, Date);
                return(new Receipt(line.Number, package, packDet, MinutesToContacts, SMSToContacts));
            }
            else
            {
                return(EmptyRecepit(lineNumber));
            }
        }
Пример #28
0
        private void Calculate(object obj)
        {
            List <string> Checkedlines = new List <string>();

            foreach (var item in cbObjects)
            {
                if (item.IsSelected)
                {
                    Checkedlines.Add(item.ObjectData.Number);
                }
            }
            YearAndMonth     selectedDate               = new YearAndMonth(SelectedYear, SelectedMonth);
            BillRequestModel billRequestModel           = new BillRequestModel(currentClient.ID, Checkedlines, selectedDate);
            Tuple <object, HttpStatusCode> returnTuple1 = httpClient.PostRequest(ApiConfigs.CheckIfLineExistedRoute, billRequestModel);

            if (returnTuple1.Item2 == HttpStatusCode.OK)
            {
                if ((bool)returnTuple1.Item1)
                {
                    Tuple <object, HttpStatusCode> returnTuple = httpClient.PostRequest(ApiConfigs.GetSpecficLinesBillRoute, billRequestModel);
                    if (returnTuple.Item2 == HttpStatusCode.OK)
                    {
                        JObject jObject = new JObject();
                        jObject = (JObject)returnTuple.Item1;
                        ClientBill clientBill = jObject.ToObject <ClientBill>();
                        BillWindow billWindow = new BillWindow(clientBill, selectedDate);
                        billWindow.Show();
                        CloseThisWindow();
                    }
                }
                else
                {
                    logger.Print("One or more of the selected lines didnt exist in the selected date");
                }
            }
            else
            {
                logger.Print(returnTuple1.Item2.ToString());
            }
        }
Пример #29
0
        public double GetSumOfLast3Months(Client client)
        {
            //gets the sum the client paid for the last 3 month
            List <Receipt> allRecepits = new List <Receipt>();
            List <Line>    clientLines = networkRepository.GetClientLines(client.ID);

            for (int i = 0; i < 3; i++)
            {
                YearAndMonth date = new YearAndMonth(DateTime.Now.Year - i, DateTime.Now.Month - i);
                foreach (var item in clientLines)
                {
                    allRecepits.Add(GetRecipetByLineAndDate(item.Number, date));
                }
            }
            double sumOfRecepits = 0;

            foreach (var item in allRecepits)
            {
                sumOfRecepits += item.TotalPayment;
            }
            return(sumOfRecepits);
        }
Пример #30
0
        /// <summary>
        /// Get Single Labelling Info
        /// </summary>
        /// <param name="hierarchyPath"></param>
        public string GetSingleLabellingInfo(string[] hierarchyPath, YearAndMonth Time, string IndustryType, string UnitType)
        {
            string labellingInfo = hierarchyPath[0];

            if (String.IsNullOrEmpty(UnitType))
            {
                UnitType = "单位人口";
            }

            if (String.IsNullOrEmpty(IndustryType))
            {
                IndustryType = JazzFunction.EnergyViewToolbar.GetLabellingIndustryButtonText();
            }

            for (int i = 1; i < hierarchyPath.Length; i++)
            {
                labellingInfo = labellingInfo + "/" + hierarchyPath[i];
            }

            labellingInfo = "\n" + labellingInfo + "\n" + Time.year.ToString() + "-" + Time.month.ToString() + "\n" + IndustryType + "\n" + UnitType;

            return(labellingInfo);
        }
Пример #31
0
        private void fillTreeView(DateTime[] dates)
        {
            List<YearAndMonth> values = new List<YearAndMonth>();
            foreach (DateTime date in dates)
            {
                YearAndMonth ym = new YearAndMonth(date);
                if (!values.Contains<YearAndMonth>(ym))
                    values.Add(ym);
            }

            List<int> years = new List<int>();
            foreach (YearAndMonth ym in values)
            {
                if (!years.Contains(ym.year))
                {
                    treeView1.Nodes.Add(ym.year.ToString(), ym.year.ToString());
                    years.Add(ym.year);
                }
                TreeNode monthNode = new TreeNode(ym.month);
                monthNode.Tag = ym;
                treeView1.Nodes[ym.year.ToString()].Nodes.Add(monthNode);
            }
        }
Пример #32
0
        /// <summary>
        /// Get Single Labelling Info
        /// </summary>
        /// <param name="hierarchyPath"></param>
        public string GetMultiLabellingInfo(MultipleHierarchyAndtags[] multipleHierarchyAndtags, YearAndMonth Time, string IndustryType, string UnitType)
        {
            string labellingInfo = multipleHierarchyAndtags[0].HierarchyPath[0];

            if (String.IsNullOrEmpty(UnitType))
            {
                UnitType = "单位人口";
            }

            if (String.IsNullOrEmpty(IndustryType))
            {
                IndustryType = JazzFunction.EnergyViewToolbar.GetLabellingIndustryButtonText();
            }

            for (int j = 0; j < multipleHierarchyAndtags.Length; j++)
            {
                for (int i = 1; i < multipleHierarchyAndtags[j].HierarchyPath.Length; i++)
                {
                    labellingInfo = labellingInfo + "/" + multipleHierarchyAndtags[j].HierarchyPath[i];
                }

                labellingInfo = " : " + multipleHierarchyAndtags[j].TagsName[0];

                for (int k = 1; k < multipleHierarchyAndtags[j].TagsName.Length; k++)
                {
                    labellingInfo = labellingInfo + "," + multipleHierarchyAndtags[j].TagsName[k];
                }

                labellingInfo = labellingInfo + "\n";
            }

            labellingInfo = labellingInfo + "\n" + Time.year.ToString() + "-" + Time.month.ToString() + "\n" + IndustryType + "\n" + UnitType;

            return(labellingInfo);
        }
Пример #33
0
        void drawUsersChart(List<State> statesList, YearAndMonth Range)
        {
            mainChart.Series.Clear();
            User CurrentUser = null;
            foreach (User U in this.statesContainer.Users)
            {
                if (U.Name == this.listBox1.SelectedItem.ToString())
                    CurrentUser = U;
            }

            if (CurrentUser != null)
            {
                ChartArea area = mainChart.ChartAreas[0];
                area.AxisX.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Days;
                area.AxisX.Interval = 1;
                area.AxisX.Title = "Дни";
                area.AxisY.Title = "Время, ч.";
                area.AxisY.Interval = 0.5;
                area.AxisY.Maximum = 12;

                Dictionary<Product, Series> data = new Dictionary<Product, Series>();

                foreach (DateTime date in this.statesContainer.Dates)
                {
                    if (date.Year == Range.Date.Year && date.Month == Range.Date.Month)
                    {
                        Dictionary<Product, double> dailyData = this.statesContainer.UserTimePerDay(CurrentUser, date);

                        foreach (Product P in dailyData.Keys)
                        {
                            if (!data.ContainsKey(P))
                            {
                                Series series = new Series(P.Name);
                                series.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                                series.XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Date;
                                series.YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Int32;
                                series.LegendText = P.Name;

                                data.Add(P, series);
                            }
                            DataPoint point = new DataPoint(data[P]);
                            point.SetValueXY(date, dailyData[P]);
                            point.Tag = date;
                            data[P].Points.Add(point);
                        }
                    }
                }

                foreach (KeyValuePair<Product, Series> pair in data)
                {
                    mainChart.Series.Add(pair.Value);
                }
            }
        }