Exemple #1
0
        private void BackBtn_Click(object sender, RoutedEventArgs e)
        {
            SiteStatus Home = new SiteStatus();

            this.Hide();
            Home.ShowDialog();
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,SiteStatusName")] SiteStatus siteStatus)
        {
            if (id != siteStatus.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(siteStatus);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!SiteStatusExists(siteStatus.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(siteStatus));
        }
Exemple #3
0
 private void SetAllSiteStatus(SiteStatus status)
 {
     foreach (var site in Sites)
     {
         site.Status = status;
     }
 }
Exemple #4
0
        public async Task <IItemStatus> GetStatus()
        {
            var requestsCount               = AppInsightsClient.GetRequestsCount(ApplicationId, ApiKey, AppInsightsTimeSpan.PT1H);
            var requestsFailed              = AppInsightsClient.GetExceptionsServer(ApplicationId, ApiKey, AppInsightsTimeSpan.PT1H);
            var requestsDuration            = AppInsightsClient.GetRequestsDurationPercentile(ApplicationId, ApiKey, 90);
            var requestsCount10Min          = AppInsightsClient.GetRequestsCount(ApplicationId, ApiKey, AppInsightsTimeSpan.PT10M);
            var requestsFailed10Min         = AppInsightsClient.GetExceptionsServer(ApplicationId, ApiKey, AppInsightsTimeSpan.PT10M);
            var availabilityPercentage10Min = AppInsightsClient.GetAvailabilityPercentage(ApplicationId, ApiKey, AppInsightsTimeSpan.PT10M);
            await Task.WhenAll(requestsCount, requestsFailed, requestsDuration, requestsCount10Min, requestsFailed10Min, availabilityPercentage10Min);

            var requests               = requestsCount.Result / 60;
            var responseTime           = requestsDuration.Result ?? 0;
            var errorRate              = requestsCount.Result.HasValue && requestsFailed.Result.HasValue && requestsCount.Result.Value > 0 && requestsFailed.Result.Value >= SiteSettings.ErrorCountMinimum ? Math.Round(100.0 / requestsCount.Result.Value * requestsFailed.Result.Value, 1) : 0;
            var errorRate10Min         = requestsCount10Min.Result.HasValue && requestsFailed10Min.Result.HasValue && requestsCount10Min.Result > 0 && requestsFailed10Min.Result >= SiteSettings.ErrorCountMinimum ? Math.Round(100.0 / requestsCount10Min.Result.Value * requestsFailed10Min.Result.Value, 1) : 0;
            var availabilityErrorLevel = availabilityPercentage10Min.Result < 50 ? ErrorLevel.Error : ErrorLevel.Normal;

            if (requestsFailed.Result.HasValue && requestsFailed.Result.Value > 0 && (!requestsCount.Result.HasValue || requestsCount.Result.Value == 0))
            {
                errorRate = 100;
            }

            if (requestsFailed10Min.Result.HasValue && requestsFailed10Min.Result.Value > 0 && (!requestsCount10Min.Result.HasValue || requestsCount10Min.Result.Value == 0))
            {
                errorRate10Min = 100;
            }

            var result = new SiteStatus
            {
                RequestsPerMinute         = requests ?? 0,
                AvgResponseTime           = Convert.ToInt32(responseTime),
                ErrorRate                 = errorRate,
                ErrorRate10Min            = errorRate10Min,
                AvgResponseTimeErrorLevel = responseTime > SiteSettings.AvgResponseTimeWarning ? ErrorLevel.Warning : ErrorLevel.Normal,
                ErrorRateLevel            = GetErrorRateLevel(errorRate, SiteSettings),
                ErrorRateLevel10Min       = GetErrorRateLevel(errorRate10Min, SiteSettings)
            };

            var errorLevels = new[]
            {
                result.AvgResponseTimeErrorLevel,
                result.ErrorRateLevel,
                result.ErrorRateLevel10Min,
                availabilityErrorLevel
            };

            if (errorLevels.Any(r => r == ErrorLevel.Error))
            {
                result.ErrorLevel = ErrorLevel.Error;
            }
            else if (errorLevels.Any(r => r == ErrorLevel.Warning))
            {
                result.ErrorLevel = ErrorLevel.Warning;
            }
            else if (errorLevels.Any(r => r == ErrorLevel.Normal))
            {
                result.ErrorLevel = ErrorLevel.Normal;
            }

            return(result);
        }
        public static void AddSite(string siteDomain, SiteStatus siteStatus)
        {
            DeleteSite(siteDomain);

            var doc = getDoc();
            doc.Add(new XElement("site", siteDomain, new XAttribute("status", (int)siteStatus)));
            saveDoc(doc);
        }
Exemple #6
0
        private void SetSiteStatus(TcaAddr tca, ChipAddr chip, TcaChannel channel, SiteStatus status)
        {
            SiteModel model = Sites.Find(s => s.TcaAddr == tca && s.ChipAddr == chip && s.Channel == channel);

            if (model != null)
            {
                model.Status = status;
            }
        }
Exemple #7
0
 public void AddDefaultStatus()
 {
     if (_site.SiteStatuses.Count == 0)
     {
         SiteStatus Defaultstatus = new SiteStatus();
         Defaultstatus.OpenedFrom = DateTime.Now;
         Defaultstatus.Site       = _site;
         _site.SiteStatuses.Add(Defaultstatus);
     }
 }
        public async Task <IActionResult> Create([Bind("Id,SiteStatusName")] SiteStatus siteStatus)
        {
            if (ModelState.IsValid)
            {
                _context.Add(siteStatus);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(siteStatus));
        }
        public static string GetSiteStatusIcon(SiteStatus status)
        {
            var statusText = status switch
            {
                SiteStatus.AllOperational => "favicon-operational.ico",
                SiteStatus.SystemPerformanceImpacted => "favicon-performance.ico",
                SiteStatus.PartialSystemIssues => "favicon-partial.ico",
                SiteStatus.MajorSystemIssues => "favicon-major.ico",
                _ => null
            };

            return(statusText);
        }
        public static string GetSiteStatus(SiteStatus status)
        {
            var statusText = status switch
            {
                SiteStatus.AllOperational => "All Systems Operational",
                SiteStatus.SystemPerformanceImpacted => "Some systems are experiencing performance issues",
                SiteStatus.PartialSystemIssues => "Some systems are experiencing issues",
                SiteStatus.MajorSystemIssues => "Some systems are experiencing a major outage",
                _ => "Unknown system status"
            };

            return(statusText);
        }
        public Task UpdateStatus(Guid id, SiteStatus status)
        {
            lock (_lockObject)
            {
                if (!_siteData.ContainsKey(id))
                {
                    throw new EntityNotExistException();
                }

                _siteData[id].SetStatus(status);
                return(Task.CompletedTask);
            }
        }
Exemple #12
0
        /// <inheritdoc />
        public async Task <SiteDTO> SaveAsync(SiteDTO model)
        {
            if (model == null)
            {
                throw new ArgumentException("Передана пустая объектная модель.");
            }

            EntityEntry <SiteStatus> siteStatusEntry = null;
            Guid id;
            var  site = await Context.Sites.Select(x => x)
                        .FirstOrDefaultAsync(x => x.Id == model.Id);

            if (site != null)
            {
                var siteEntry = Context.Entry(site);
                siteEntry.CurrentValues.SetValues(model);
                siteEntry.State = EntityState.Modified;

                var siteStatus = await Context.SiteStatuses.Select(x => x)
                                 .FirstOrDefaultAsync(x => x.Site.Id == model.Id);

                siteStatusEntry = Context.Entry(siteStatus);
                siteStatusEntry.Entity.CheckedInterval = model.CheckedInterval;
                siteStatusEntry.State = EntityState.Modified;
                id = site.Id;
            }
            else
            {
                var siteEntry = await Context.Sites.AddAsync(model.ToSite());

                if (siteEntry != null)
                {
                    var siteStatus = new SiteStatus
                    {
                        Site            = siteEntry.Entity,
                        CheckedInterval = model.CheckedInterval == 0 ? 5 : model.CheckedInterval
                    };
                    siteStatusEntry = await Context.SiteStatuses.AddAsync(siteStatus);
                }
                id = siteEntry.Entity.Id;
            }

            if (siteStatusEntry != null)
            {
                await this.UpdateStatusFields(model, siteStatusEntry);
            }

            await Context.SaveChangesAsync();

            return(await GetAsync(id));
        }
Exemple #13
0
        private void butSave_Click(object sender, EventArgs e)
        {
            int count = 0;
            int error = 0;

            try
            {
                foreach (SiteImportData rd in _rdata)
                {
                    if (!rd.IsExist && !rd.HasError)
                    {
                        ForlabSite site = new ForlabSite();

                        site.Region                        = rd.Region;
                        site.SiteName                      = rd.SiteName;
                        site.SiteLevel                     = rd.SiteLevel;
                        site.SiteCategory                  = rd.Category;
                        site.WorkingDays                   = rd.WorkingDays;
                        site.CD4TestingDaysPerMonth        = rd.Cd4Td;
                        site.ChemistryTestingDaysPerMonth  = rd.ChemTd;
                        site.HematologyTestingDaysPerMonth = rd.HemaTd;
                        site.ViralLoadTestingDaysPerMonth  = rd.ViralTd;
                        site.OtherTestingDaysPerMonth      = rd.OtherTd;
                        SiteStatus ss = new SiteStatus();
                        ss.OpenedFrom = rd.OpeningDate != null ? rd.OpeningDate.Value : DateTime.Now;
                        site.SiteStatuses.Add(ss);
                        count++;
                        DataRepository.SaveOrUpdateSite(site);
                    }
                    else
                    {
                        error++;
                    }
                }
                MessageBox.Show(count + " Sites are imported and saved successfully." + Environment.NewLine + error + " Sites Failed.", "Importing", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.DialogResult = System.Windows.Forms.DialogResult.OK;
                this.Close();
            }
            catch
            {
                MessageBox.Show("Error: Unable to import Site data.", "Importing", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                DataRepository.CloseSession();
            }
        }
Exemple #14
0
        public RetMsg Add(SiteStatus status)
        {
            RetMsg ret = new RetMsg();

            try
            {
                db.Status.Add(status);
                db.SaveChanges();
                ret.Result = true;
            }
            catch (Exception e)
            {
                ret.Result = false;
                ret.Msg    = e.Message;
            }
            return(ret);
        }
Exemple #15
0
        public void Test1()
        {
            var expectedResult = new SiteStatus
            {
                IsHeaderAvailable = true,
                IsBodyAvailable   = true
            };

            TestBuilder builder = new TestBuilder();

            builder
            .AddLogger <NewLogger>()
            .AddDependencyService <IWebDriver>(new WebDriverFactory("Chrome").Driver)
            .AddDependencyService <Harness.IntelliTectWebpage>()
            .AddTestBlock <TestBlocks.NavigateToWebsite>()
            .AddTestBlock <TestBlocks.VerifyWebsiteBodyIsDisplayed>(expectedResult)
            .ExecuteTestCase();
        }
Exemple #16
0
        private void lbtOpen_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            FrmInput frm = new FrmInput(DateTime.Now, "Opening Date");

            frm.ShowDialog();
            if (frm.DialogResult == DialogResult.OK)
            {
                SiteStatus ss = new SiteStatus();
                ss.OpenedFrom = frm.GetDateTimeValue();
                _site.SiteStatuses.Add(ss);
                //DataRepository.SaveOrUpdateSite(_site);
                PopStatus();

                if (OnDataUsageEdit != null)
                {
                    OnDataUsageEdit(this, new EventArgs());
                }
            }
        }
        public IActionResult OnPost()
        {
            User u = _userRepository.FindUser(User.Name, User.Password);

            if (u != null)
            {
                TempData["SuccessAutentification"] = $"{u.Name} успешно авторизован(а)";

                SiteStatus.ChangeUser(u);

                return(RedirectToPage("/Index"));
            }
            else
            {
                TempData["Autentification"] = $"¬ведены неверные данные, попробуйте еще раз";
            }

            return(Page());
        }
Exemple #18
0
 //TODO: See how we can avoid injecting EventBus into the Domain entities
 public Site(Guid id, int siteNumber, string siteName, SiteStatus status, SiteFacilityType siteFacitlityType, SiteType siteType,
             DateTimeRange contractDuration, PhoneNumber primaryPhoneNumber, Contact contactDetails, VO.Address address, string email,
             string countyCode, string countyServedCode, LicenceStatus licenceStatus, IEnumerable <SiteHoliday> holidays, IEnumerable <SiteRate> rates /*, IBus bus*/) : base(id /*, bus*/)
 {
     SiteNumber         = siteNumber;
     SiteName           = siteName;
     Status             = status;
     SiteFacitlityType  = siteFacitlityType;
     SiteType           = siteType;
     ContractDuration   = contractDuration;
     PrimaryPhoneNumber = primaryPhoneNumber;
     ContactDetails     = contactDetails;
     Address            = address;
     Email            = email;
     CountyCode       = countyCode;
     CountyServedCode = countyServedCode;
     LicencingStatus  = licenceStatus;
     InitializeDbState();
     holidays.ForEach(AddNewHoliday);
     rates.ForEach(AddNewSiteRate);
 }
Exemple #19
0
 //TODO: See how we can avoid injecting EventBus into the Domain entities
 public Site(Guid id, int siteNumber, string siteName, SiteStatus status, SiteFacilityType siteFacitlityType, SiteType siteType,
     DateTimeRange contractDuration, PhoneNumber primaryPhoneNumber, Contact contactDetails, VO.Address address, string email,
     string countyCode, string countyServedCode, LicenceStatus licenceStatus, IEnumerable<SiteHoliday> holidays, IEnumerable<SiteRate> rates/*, IBus bus*/)
     : base(id/*, bus*/)
 {
     SiteNumber = siteNumber;
     SiteName = siteName;
     Status = status;
     SiteFacitlityType = siteFacitlityType;
     SiteType = siteType;
     ContractDuration = contractDuration;
     PrimaryPhoneNumber = primaryPhoneNumber;
     ContactDetails = contactDetails;
     Address = address;
     Email = email;
     CountyCode = countyCode;
     CountyServedCode = countyServedCode;
     LicencingStatus = licenceStatus;
     InitializeDbState();
     holidays.ForEach(AddNewHoliday);
     rates.ForEach(AddNewSiteRate);
 }
Exemple #20
0
        public virtual void IntegrityCheckProc(INItemSiteSummary itemsite, string minPeriod, bool replanBackorders)
        {
            using (PXConnectionScope cs = new PXConnectionScope())
            {
                using (PXTransactionScope ts = new PXTransactionScope())
                {
                    foreach (INItemPlan p in PXSelectReadonly2 <INItemPlan, LeftJoin <Note, On <Note.noteID, Equal <INItemPlan.refNoteID> > >, Where <INItemPlan.inventoryID, Equal <Current <INItemSiteSummary.inventoryID> >, And <INItemPlan.siteID, Equal <Current <INItemSiteSummary.siteID> >, And <Note.noteID, IsNull> > > > .SelectMultiBound(this, new object[] { itemsite }))
                    {
                        PXDatabase.Delete <INItemPlan>(new PXDataFieldRestrict("PlanID", PXDbType.BigInt, 8, p.PlanID, PXComp.EQ));
                    }

                    foreach (INItemPlan p in PXSelectReadonly2 <INItemPlan,
                                                                InnerJoin <INRegister, On <INRegister.noteID, Equal <INItemPlan.refNoteID>, And <INRegister.siteID, Equal <INItemPlan.siteID> > > >,
                                                                Where <INRegister.docType, Equal <INDocType.transfer>,
                                                                       And <INRegister.released, Equal <boolTrue>,
                                                                            And <INItemPlan.inventoryID, Equal <Current <INItemSiteSummary.inventoryID> >,
                                                                                 And <INItemPlan.siteID, Equal <Current <INItemSiteSummary.siteID> > > > > > > .SelectMultiBound(this, new object[] { itemsite }))
                    {
                        PXDatabase.Delete <INItemPlan>(new PXDataFieldRestrict("PlanID", PXDbType.BigInt, 8, p.PlanID, PXComp.EQ));
                    }

                    foreach (PXResult <INTranSplit, INRegister, INSite, INItemSite> res in PXSelectJoin <INTranSplit,
                                                                                                         InnerJoin <INRegister, On <INRegister.docType, Equal <INTranSplit.docType>, And <INRegister.refNbr, Equal <INTranSplit.refNbr> > >,
                                                                                                                    InnerJoin <INSite, On <INSite.siteID, Equal <INRegister.toSiteID> >,
                                                                                                                               LeftJoin <INItemSite, On <INItemSite.inventoryID, Equal <INTranSplit.inventoryID>, And <INItemSite.siteID, Equal <INRegister.toSiteID> > >,
                                                                                                                                         LeftJoin <INTran, On <INTran.origTranType, Equal <INTranSplit.tranType>, And <INTran.origRefNbr, Equal <INTranSplit.refNbr>, And <INTran.origLineNbr, Equal <INTranSplit.lineNbr> > > >,
                                                                                                                                                   LeftJoin <INItemPlan, On <INItemPlan.planID, Equal <INTranSplit.planID> > > > > > >,
                                                                                                         Where <INRegister.docType, Equal <INDocType.transfer>,
                                                                                                                And2 <Where <INRegister.released, Equal <boolTrue>, And <INTranSplit.released, Equal <boolTrue>,
                                                                                                                                                                         Or <INRegister.released, Equal <boolFalse> > > >,
                                                                                                                      And <INTranSplit.inventoryID, Equal <Current <INItemSiteSummary.inventoryID> >,
                                                                                                                           And <INTranSplit.siteID, Equal <Current <INItemSiteSummary.siteID> >,
                                                                                                                                And <INTranSplit.invtMult, Equal <shortMinus1>,
                                                                                                                                     And <INItemPlan.planID, IsNull,
                                                                                                                                          And <INTran.refNbr, IsNull> > > > > > > > .SelectMultiBound(this, new object[] { itemsite }))
                    {
                        INTranSplit split = res;
                        INRegister  doc   = res;

                        if (split.TransferType == INTransferType.OneStep && doc.Released == true)
                        {
                            if (doc.TransferType == INTransferType.OneStep)
                            {
                                doc.TransferType = INTransferType.TwoStep;
                                Caches[typeof(INRegister)].Update(doc);
                            }
                            split.TransferType = INTransferType.TwoStep;
                        }
                        INItemPlan plan = INItemPlanIDAttribute.DefaultValues(this.Caches[typeof(INTranSplit)], res);
                        if (plan.LocationID == null)
                        {
                            plan.LocationID = ((INItemSite)res).DfltReceiptLocationID ?? ((INSite)res).ReceiptLocationID;
                        }

                        plan = (INItemPlan)this.Caches[typeof(INItemPlan)].Insert(plan);

                        split.PlanID = plan.PlanID;
                        Caches[typeof(INTranSplit)].SetStatus(split, PXEntryStatus.Updated);
                    }


                    PXDatabase.Update <INSiteStatus>(
                        new PXDataFieldRestrict <INSiteStatus.inventoryID>(PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ),
                        new PXDataFieldRestrict <INSiteStatus.siteID>(PXDbType.Int, 4, itemsite.SiteID, PXComp.EQ),
                        new PXDataFieldAssign <INSiteStatus.qtyAvail>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtyHardAvail>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtyNotAvail>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtyINIssues>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtyINReceipts>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtyInTransit>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtyINAssemblySupply>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtyINAssemblyDemand>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtyINReplaned>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtyPOPrepared>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtyPOOrders>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtyPOReceipts>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtySOPrepared>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtySOBooked>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtySOShipped>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtySOShipping>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtySOBackOrdered>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtySOFixed>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtyPOFixedOrders>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtyPOFixedPrepared>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtyPOFixedReceipts>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtySODropShip>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtyPODropShipOrders>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtyPODropShipPrepared>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtyPODropShipReceipts>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INSiteStatus.qtyInTransitToSO>(PXDbType.Decimal, 0m)
                        );

                    PXDatabase.Update <INLocationStatus>(
                        new PXDataFieldRestrict <INLocationStatus.inventoryID>(PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ),
                        new PXDataFieldRestrict <INLocationStatus.siteID>(PXDbType.Int, 4, itemsite.SiteID, PXComp.EQ),
                        new PXDataFieldAssign <INLocationStatus.qtyAvail>(PXDbType.DirectExpression, "QtyOnHand"),
                        new PXDataFieldAssign <INLocationStatus.qtyHardAvail>(PXDbType.DirectExpression, "QtyOnHand"),
                        new PXDataFieldAssign <INLocationStatus.qtyINIssues>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLocationStatus.qtyINReceipts>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLocationStatus.qtyInTransit>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLocationStatus.qtyINAssemblySupply>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLocationStatus.qtyINAssemblyDemand>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLocationStatus.qtyPOPrepared>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLocationStatus.qtyPOOrders>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLocationStatus.qtyPOReceipts>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLocationStatus.qtySOPrepared>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLocationStatus.qtySOBooked>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLocationStatus.qtySOShipped>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLocationStatus.qtySOShipping>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLocationStatus.qtySOBackOrdered>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLocationStatus.qtySOFixed>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLocationStatus.qtyPOFixedOrders>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLocationStatus.qtyPOFixedPrepared>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLocationStatus.qtyPOFixedReceipts>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLocationStatus.qtySODropShip>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLocationStatus.qtyPODropShipOrders>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLocationStatus.qtyPODropShipPrepared>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLocationStatus.qtyPODropShipReceipts>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLocationStatus.qtyInTransitToSO>(PXDbType.Decimal, 0m)
                        );

                    PXDatabase.Update <INLotSerialStatus>(
                        new PXDataFieldRestrict <INLotSerialStatus.inventoryID>(PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ),
                        new PXDataFieldRestrict <INLotSerialStatus.siteID>(PXDbType.Int, 4, itemsite.SiteID, PXComp.EQ),
                        new PXDataFieldAssign <INLotSerialStatus.qtyAvail>(PXDbType.DirectExpression, "QtyOnHand"),
                        new PXDataFieldAssign <INLotSerialStatus.qtyHardAvail>(PXDbType.DirectExpression, "QtyOnHand"),
                        new PXDataFieldAssign <INLotSerialStatus.qtyINIssues>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLotSerialStatus.qtyINReceipts>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLotSerialStatus.qtyInTransit>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLotSerialStatus.qtyINAssemblySupply>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLotSerialStatus.qtyINAssemblyDemand>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLotSerialStatus.qtyPOPrepared>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLotSerialStatus.qtyPOOrders>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLotSerialStatus.qtyPOReceipts>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLotSerialStatus.qtySOPrepared>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLotSerialStatus.qtySOBooked>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLotSerialStatus.qtySOShipped>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLotSerialStatus.qtySOShipping>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLotSerialStatus.qtySOBackOrdered>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLotSerialStatus.qtySOFixed>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLotSerialStatus.qtyPOFixedOrders>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLotSerialStatus.qtyPOFixedPrepared>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLotSerialStatus.qtyPOFixedReceipts>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLotSerialStatus.qtySODropShip>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLotSerialStatus.qtyPODropShipOrders>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLotSerialStatus.qtyPODropShipPrepared>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLotSerialStatus.qtyPODropShipReceipts>(PXDbType.Decimal, 0m),
                        new PXDataFieldAssign <INLotSerialStatus.qtyInTransitToSO>(PXDbType.Decimal, 0m)

                        );

                    PXDatabase.Update <INItemLotSerial>(
                        new PXDataFieldRestrict("InventoryID", PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ),
                        new PXDataFieldAssign("QtyAvail", PXDbType.DirectExpression, "QtyOnHand"),
                        new PXDataFieldAssign("QtyHardAvail", PXDbType.DirectExpression, "QtyOnHand"),
                        new PXDataFieldAssign("QtyINTransit", PXDbType.Decimal, 0m)
                        );

                    PXDatabase.Update <INSiteLotSerial>(
                        new PXDataFieldRestrict <INSiteLotSerial.inventoryID>(PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ),
                        new PXDataFieldRestrict <INSiteLotSerial.siteID>(PXDbType.Int, 4, itemsite.SiteID, PXComp.EQ),
                        new PXDataFieldAssign <INSiteLotSerial.qtyAvail>(PXDbType.DirectExpression, "QtyOnHand"),
                        new PXDataFieldAssign <INSiteLotSerial.qtyHardAvail>(PXDbType.DirectExpression, "QtyOnHand"),
                        new PXDataFieldAssign <INSiteLotSerial.qtyInTransit>(PXDbType.Decimal, 0m)
                        );


                    foreach (PXResult <ReadOnlyLocationStatus, INLocation> res in PXSelectJoinGroupBy <ReadOnlyLocationStatus, InnerJoin <INLocation, On <INLocation.locationID, Equal <ReadOnlyLocationStatus.locationID> > >, Where <ReadOnlyLocationStatus.inventoryID, Equal <Current <INItemSiteSummary.inventoryID> >, And <ReadOnlyLocationStatus.siteID, Equal <Current <INItemSiteSummary.siteID> > > >, Aggregate <GroupBy <ReadOnlyLocationStatus.inventoryID, GroupBy <ReadOnlyLocationStatus.siteID, GroupBy <ReadOnlyLocationStatus.subItemID, GroupBy <INLocation.inclQtyAvail, Sum <ReadOnlyLocationStatus.qtyOnHand> > > > > > > .SelectMultiBound(this, new object[] { itemsite }))
                    {
                        SiteStatus status = new SiteStatus();
                        status.InventoryID = ((ReadOnlyLocationStatus)res).InventoryID;
                        status.SubItemID   = ((ReadOnlyLocationStatus)res).SubItemID;
                        status.SiteID      = ((ReadOnlyLocationStatus)res).SiteID;
                        status             = (SiteStatus)sitestatus.Cache.Insert(status);

                        if (((INLocation)res).InclQtyAvail == true)
                        {
                            status.QtyAvail     += ((ReadOnlyLocationStatus)res).QtyOnHand;
                            status.QtyHardAvail += ((ReadOnlyLocationStatus)res).QtyOnHand;
                        }
                        else
                        {
                            status.QtyNotAvail += ((ReadOnlyLocationStatus)res).QtyOnHand;
                        }
                    }

                    INPlanType plan60 = PXSelect <INPlanType, Where <INPlanType.planType, Equal <INPlanConstants.plan60> > > .Select(this);

                    INPlanType plan61 = PXSelect <INPlanType, Where <INPlanType.planType, Equal <INPlanConstants.plan61> > > .Select(this);

                    INPlanType plan70 = PXSelect <INPlanType, Where <INPlanType.planType, Equal <INPlanConstants.plan70> > > .Select(this);

                    INPlanType plan74 = PXSelect <INPlanType, Where <INPlanType.planType, Equal <INPlanConstants.plan74> > > .Select(this);

                    INPlanType plan76 = PXSelect <INPlanType, Where <INPlanType.planType, Equal <INPlanConstants.plan76> > > .Select(this);

                    INPlanType plan42 = PXSelect <INPlanType, Where <INPlanType.planType, Equal <INPlanConstants.plan42> > > .Select(this);

                    INPlanType plan44 = PXSelect <INPlanType, Where <INPlanType.planType, Equal <INPlanConstants.plan44> > > .Select(this);

                    foreach (PXResult <INItemPlan, INPlanType, SOShipLineSplit, POReceiptLineSplit> res in PXSelectJoin <INItemPlan,
                                                                                                                         InnerJoin <INPlanType, On <INPlanType.planType, Equal <INItemPlan.planType> >,
                                                                                                                                    LeftJoin <SOShipLineSplit, On <SOShipLineSplit.planID, Equal <INItemPlan.planID> >,
                                                                                                                                              LeftJoin <POReceiptLineSplit, On <POReceiptLineSplit.planID, Equal <INItemPlan.planID> > > > >,
                                                                                                                         Where <INItemPlan.inventoryID, Equal <Current <INItemSiteSummary.inventoryID> >, And <INItemPlan.siteID, Equal <Current <INItemSiteSummary.siteID> > > > > .SelectMultiBound(this, new object[] { itemsite }))
                    {
                        INItemPlan         plan     = (INItemPlan)res;
                        INPlanType         plantype = (INPlanType)res;
                        INPlanType         locplantype;
                        SOShipLineSplit    sosplit = (SOShipLineSplit)res;
                        POReceiptLineSplit posplit = (POReceiptLineSplit)res;

                        if (plan.InventoryID != null &&
                            plan.SubItemID != null &&
                            plan.SiteID != null)
                        {
                            switch (plan.PlanType)
                            {
                            case INPlanConstants.Plan61:
                            case INPlanConstants.Plan63:
                                locplantype = plantype;

                                if (sosplit.ShipmentNbr != null)
                                {
                                    SOOrderType ordetype = PXSelect <SOOrderType, Where <SOOrderType.orderType, Equal <Current <SOShipLineSplit.origOrderType> > > > .SelectSingleBound(this, new object[] { sosplit });

                                    if (plan.OrigPlanType == null)
                                    {
                                        plan.OrigPlanType = ordetype.OrderPlanType;
                                    }

                                    if (plan.OrigPlanType == INPlanConstants.Plan60 && sosplit.IsComponentItem != true)
                                    {
                                        plantype = plantype - plan60;
                                    }

                                    if ((plan.OrigPlanType == INPlanConstants.Plan61 || plan.OrigPlanType == INPlanConstants.Plan63) && sosplit.IsComponentItem != true)
                                    {
                                        plantype = plantype - plan61;
                                    }
                                }

                                break;

                            case INPlanConstants.Plan71:
                            case INPlanConstants.Plan72:
                                locplantype = plantype;
                                if (posplit.ReceiptNbr == null)
                                {
                                    PXDatabase.Delete <INItemPlan>(new PXDataFieldRestrict("PlanID", PXDbType.BigInt, 8, plan.PlanID, PXComp.EQ));
                                    continue;
                                }
                                if (posplit.PONbr != null)
                                {
                                    plantype = plantype - plan70;
                                }
                                break;

                            case INPlanConstants.Plan77:
                                locplantype = plantype;
                                if (posplit.ReceiptNbr != null && posplit.PONbr != null)
                                {
                                    plantype = plantype - plan76;
                                }

                                break;

                            case INPlanConstants.Plan75:
                                locplantype = plantype;
                                if (posplit.ReceiptNbr != null && posplit.PONbr != null)
                                {
                                    plantype = plantype - plan74;
                                }
                                break;

                            case INPlanConstants.Plan43:
                            case INPlanConstants.Plan45:
                                if (plan.OrigPlanType == INPlanConstants.Plan44)
                                {
                                    plantype = plantype - plan44;
                                }

                                if (plan.OrigPlanType == INPlanConstants.Plan42)
                                {
                                    plantype = plantype - plan42;
                                }
                                locplantype = plantype;
                                break;

                            default:
                                locplantype = plantype;
                                break;
                            }

                            if (plan.LocationID != null)
                            {
                                LocationStatus item = INItemPlanIDAttribute.UpdateAllocatedQuantitiesBase <LocationStatus>(this, plan, locplantype, true);
                                INItemPlanIDAttribute.UpdateAllocatedQuantitiesBase <SiteStatus>(this, plan, plantype, (bool)item.InclQtyAvail);
                                if (!string.IsNullOrEmpty(plan.LotSerialNbr))
                                {
                                    INItemPlanIDAttribute.UpdateAllocatedQuantitiesBase <LotSerialStatus>(this, plan, locplantype, true);
                                    INItemPlanIDAttribute.UpdateAllocatedQuantitiesBase <ItemLotSerial>(this, plan, locplantype, true);
                                    INItemPlanIDAttribute.UpdateAllocatedQuantitiesBase <SiteLotSerial>(this, plan, locplantype, true);
                                }
                            }
                            else
                            {
                                INItemPlanIDAttribute.UpdateAllocatedQuantitiesBase <SiteStatus>(this, plan, plantype, true);
                                if (!string.IsNullOrEmpty(plan.LotSerialNbr))
                                {
                                    //TODO: check if LotSerialNbr was allocated on OrigPlanType
                                    INItemPlanIDAttribute.UpdateAllocatedQuantitiesBase <ItemLotSerial>(this, plan, plantype, true);
                                    INItemPlanIDAttribute.UpdateAllocatedQuantitiesBase <SiteLotSerial>(this, plan, plantype, true);
                                }
                            }
                        }
                    }
                    if (replanBackorders)
                    {
                        INReleaseProcess.ReplanBackOrders(this);
                        initemplan.Cache.Persist(PXDBOperation.Insert);
                        initemplan.Cache.Persist(PXDBOperation.Update);
                    }

                    Caches[typeof(INTranSplit)].Persist(PXDBOperation.Update);

                    sitestatus.Cache.Persist(PXDBOperation.Insert);
                    sitestatus.Cache.Persist(PXDBOperation.Update);

                    locationstatus.Cache.Persist(PXDBOperation.Insert);
                    locationstatus.Cache.Persist(PXDBOperation.Update);

                    lotserialstatus.Cache.Persist(PXDBOperation.Insert);
                    lotserialstatus.Cache.Persist(PXDBOperation.Update);

                    itemlotserial.Cache.Persist(PXDBOperation.Insert);
                    itemlotserial.Cache.Persist(PXDBOperation.Update);

                    sitelotserial.Cache.Persist(PXDBOperation.Insert);
                    sitelotserial.Cache.Persist(PXDBOperation.Update);

                    if (minPeriod != null)
                    {
                        FinPeriod period =
                            PXSelect <FinPeriod,
                                      Where <FinPeriod.finPeriodID, Equal <Required <FinPeriod.finPeriodID> > > >
                            .SelectWindowed(this, 0, 1, minPeriod);

                        if (period == null)
                        {
                            return;
                        }
                        DateTime startDate = (DateTime)period.StartDate;

                        PXDatabase.Delete <INItemCostHist>(
                            new PXDataFieldRestrict("InventoryID", PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ),
                            new PXDataFieldRestrict("CostSiteID", PXDbType.Int, 4, itemsite.SiteID, PXComp.EQ),
                            new PXDataFieldRestrict("FinPeriodID", PXDbType.Char, 6, minPeriod, PXComp.GE)
                            );

                        PXDatabase.Delete <INItemSalesHistD>(
                            new PXDataFieldRestrict("InventoryID", PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ),
                            new PXDataFieldRestrict("SiteID", PXDbType.Int, 4, itemsite.SiteID, PXComp.EQ),
                            new PXDataFieldRestrict("QtyPlanSales", PXDbType.Decimal, 0m),
                            new PXDataFieldRestrict("SDate", PXDbType.DateTime, 8, startDate, PXComp.GE)

                            );
                        PXDatabase.Delete <INItemCustSalesStats>(
                            new PXDataFieldRestrict("InventoryID", PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ),
                            new PXDataFieldRestrict("SiteID", PXDbType.Int, 4, itemsite.SiteID, PXComp.EQ),
                            new PXDataFieldRestrict("LastDate", PXDbType.DateTime, 8, startDate, PXComp.GE));

                        PXDatabase.Update <INItemSalesHistD>(
                            new PXDataFieldAssign("QtyIssues", PXDbType.Decimal, 0m),
                            new PXDataFieldAssign("QtyExcluded", PXDbType.Decimal, 0m),
                            new PXDataFieldRestrict("InventoryID", PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ),
                            new PXDataFieldRestrict("SiteID", PXDbType.Int, 4, itemsite.SiteID, PXComp.EQ),
                            new PXDataFieldRestrict("SDate", PXDbType.DateTime, 8, startDate, PXComp.GE)
                            );

                        foreach (INLocation loc in PXSelectReadonly2 <INLocation, InnerJoin <INItemCostHist, On <INItemCostHist.costSiteID, Equal <INLocation.locationID> > >, Where <INLocation.siteID, Equal <Current <INItemSiteSummary.siteID> >, And <INItemCostHist.inventoryID, Equal <Current <INItemSiteSummary.inventoryID> > > > > .SelectMultiBound(this, new object[] { itemsite }))
                        {
                            PXDatabase.Delete <INItemCostHist>(
                                new PXDataFieldRestrict("InventoryID", PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ),
                                new PXDataFieldRestrict("CostSiteID", PXDbType.Int, 4, loc.LocationID, PXComp.EQ),
                                new PXDataFieldRestrict("FinPeriodID", PXDbType.Char, 6, minPeriod, PXComp.GE)
                                );
                        }

                        PXDatabase.Delete <INItemSiteHist>(
                            new PXDataFieldRestrict("InventoryID", PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ),
                            new PXDataFieldRestrict("SiteID", PXDbType.Int, 4, itemsite.SiteID, PXComp.EQ),
                            new PXDataFieldRestrict("FinPeriodID", PXDbType.Char, 6, minPeriod, PXComp.GE)
                            );

                        PXDatabase.Delete <INItemSiteHistD>(
                            new PXDataFieldRestrict("InventoryID", PXDbType.Int, 4, itemsite.InventoryID, PXComp.EQ),
                            new PXDataFieldRestrict("SiteID", PXDbType.Int, 4, itemsite.SiteID, PXComp.EQ),
                            new PXDataFieldRestrict("SDate", PXDbType.DateTime, 8, startDate, PXComp.GE)
                            );

                        INTran prev_tran = null;
                        foreach (PXResult <INTran, INTranSplit> res in PXSelectReadonly2 <INTran, InnerJoin <INTranSplit, On <INTranSplit.tranType, Equal <INTran.tranType>, And <INTranSplit.refNbr, Equal <INTran.refNbr>, And <INTranSplit.lineNbr, Equal <INTran.lineNbr> > > > >, Where <INTran.inventoryID, Equal <Current <INItemSiteSummary.inventoryID> >, And <INTran.siteID, Equal <Current <INItemSiteSummary.siteID> >, And <INTran.finPeriodID, GreaterEqual <Required <INTran.finPeriodID> >, And <INTran.released, Equal <boolTrue> > > > >, OrderBy <Asc <INTran.tranType, Asc <INTran.refNbr, Asc <INTran.lineNbr> > > > > .SelectMultiBound(this, new object[] { itemsite }, minPeriod))
                        {
                            INTran      tran  = res;
                            INTranSplit split = res;

                            if (!Caches[typeof(INTran)].ObjectsEqual(prev_tran, tran))
                            {
                                INReleaseProcess.UpdateSalesHistD(this, tran);
                                INReleaseProcess.UpdateCustSalesStats(this, tran);

                                prev_tran = tran;
                            }

                            if (split.BaseQty != 0m)
                            {
                                INReleaseProcess.UpdateSiteHist(this, res, split);
                                INReleaseProcess.UpdateSiteHistD(this, split);
                            }
                        }

                        foreach (PXResult <INTran, INTranCost> res in PXSelectReadonly2 <INTran, InnerJoin <INTranCost, On <INTranCost.tranType, Equal <INTran.tranType>, And <INTranCost.refNbr, Equal <INTran.refNbr>, And <INTranCost.lineNbr, Equal <INTran.lineNbr> > > > >, Where <INTran.inventoryID, Equal <Current <INItemSiteSummary.inventoryID> >, And <INTran.siteID, Equal <Current <INItemSiteSummary.siteID> >, And <INTranCost.finPeriodID, GreaterEqual <Required <INTran.finPeriodID> >, And <INTran.released, Equal <boolTrue> > > > > > .SelectMultiBound(this, new object[] { itemsite }, minPeriod))
                        {
                            INReleaseProcess.UpdateCostHist(this, (INTranCost)res, (INTran)res);
                        }

                        itemcosthist.Cache.Persist(PXDBOperation.Insert);
                        itemcosthist.Cache.Persist(PXDBOperation.Update);

                        itemsitehist.Cache.Persist(PXDBOperation.Insert);
                        itemsitehist.Cache.Persist(PXDBOperation.Update);

                        itemsitehistd.Cache.Persist(PXDBOperation.Insert);
                        itemsitehistd.Cache.Persist(PXDBOperation.Update);

                        itemsalehistd.Cache.Persist(PXDBOperation.Insert);
                        itemsalehistd.Cache.Persist(PXDBOperation.Update);

                        itemcustsalesstats.Cache.Persist(PXDBOperation.Insert);
                        itemcustsalesstats.Cache.Persist(PXDBOperation.Update);
                    }

                    ts.Complete();
                }

                sitestatus.Cache.Persisted(false);
                locationstatus.Cache.Persisted(false);
                lotserialstatus.Cache.Persisted(false);

                itemcosthist.Cache.Persisted(false);
                itemsitehist.Cache.Persisted(false);
                itemsitehistd.Cache.Persisted(false);
            }
        }
 public SiteStatusViewModel(SiteStatus status)
 {
     Status     = status;
     StatusText = EnumTextService.GetSiteStatus(status);
 }
 public ToolkitResultProtocol CreateSite(SiteType siteType, SiteStatus status, int primaryAddressObjid)
 {
     object[] results = this.Invoke("CreateSite", new object[] {
                 siteType,
                 status,
                 primaryAddressObjid});
     return ((ToolkitResultProtocol)(results[0]));
 }
 /// <remarks/>
 public System.IAsyncResult BeginCreateSite(SiteType siteType, SiteStatus status, int primaryAddressObjid, System.AsyncCallback callback, object asyncState)
 {
     return this.BeginInvoke("CreateSite", new object[] {
                 siteType,
                 status,
                 primaryAddressObjid}, callback, asyncState);
 }
Exemple #24
0
 public Task SaveStatus([FromForm] int id, [FromForm] SiteStatus status)
 {
     return(this.GetResult(SiteAgent.Instance().SaveStatus(id, status)));
 }
Exemple #25
0
 /// <summary>
 /// 保存状态
 /// </summary>
 public bool SaveStatus(int siteId, SiteStatus status)
 {
     this.WriteDB.Update <Site, SiteStatus>(t => t.Status, status, t => t.ID == siteId);
     SiteCaching.Instance().RemoveSiteInfo(siteId);
     return(this.AccountInfo.Log(SystemAdminLog.LogType.Site, $"修改商户{siteId}状态"));
 }
        private void CheckUrl(Site s)
        {
            string res = "";

            if (s.type == 1)
            {
                res = HttpClient.RequestPost(s.url, s.paras);
            }
            if (s.type == 2)
            {
                RetMsg ret = HttpClient.CheckWebService(s.url);
                res = ret.Msg;
            }

            SiteStatus status = new SiteStatus();

            status.siteId = s.id;
            status.paras  = res;

            //_logger.InfoFormat("[id: " + s.id + "][name: " + s.name + "]: " + res);

            if (s.type == 1)
            {
                try
                {
                    HttpResponse <DataStatus> data = DataJsonSerializer <HttpResponse <DataStatus> > .JsonToEntity(res);

                    status.status   = data.StatusCode;
                    status.errorMsg = data.ErrorMsg;
                }
                catch (Exception e)
                {
                    _logger.ErrorFormat(e.Message);
                    status.status   = "500";
                    status.errorMsg = e.Message;
                }
            }
            if (s.type == 2)
            {
                if (res != "")
                {
                    status.status   = "500";
                    status.errorMsg = res;
                }
                else
                {
                    status.status   = "200";
                    status.errorMsg = "";
                }
            }

            status.createDate = DateTime.Now;

            //将错误信息插入数据库
            if (status.status != "200")
            {
                IStatus.Add(status);
            }

            //更新状态
            ISite.updateSiteStatus(s.id, status.status);

            //异常时发邮件
            if (status.status != "200" && s.mailgroup.Trim() != "")
            {
                string[] mailAry = s.mailgroup.Split(',');
                if (mailAry.Length > 0)
                {
                    string body = "异常信息:" + Environment.NewLine + res;
                    foreach (string mail in mailAry)
                    {
                        SendEmail("服务器(" + s.name + ")出现异常,请尽快处理!", body, mail.Trim());
                    }
                }
            }
        }
 public RetMsg Add(SiteStatus status)
 {
     return(IStatus.Add(status));
 }
Exemple #28
0
 /// <summary>
 /// Initializes a new instance of the <see cref="WorkspaceList" /> class.
 /// </summary>
 /// <param name="id">id.</param>
 /// <param name="name">name.</param>
 /// <param name="type">type.</param>
 /// <param name="siteUrl">siteUrl.</param>
 /// <param name="groupEmail">groupEmail.</param>
 /// <param name="primaryContact">primaryContact.</param>
 /// <param name="primaryContactEmail">primaryContactEmail.</param>
 /// <param name="phase">phase.</param>
 /// <param name="isCurrentRenewer">isCurrentRenewer.</param>
 /// <param name="createdTime">createdTime.</param>
 /// <param name="status">status.</param>
 /// <param name="autoImportProfileId">autoImportProfileId.</param>
 /// <param name="pendingAction">pendingAction.</param>
 public WorkspaceList(Guid id = default(Guid), string name = default(string), WorkspaceType type = default(WorkspaceType), string siteUrl = default(string), string groupEmail = default(string), string primaryContact = default(string), string primaryContactEmail = default(string), AutoImportPhase phase = default(AutoImportPhase), bool isCurrentRenewer = default(bool), DateTime createdTime = default(DateTime), SiteStatus status = default(SiteStatus), Guid autoImportProfileId = default(Guid), int pendingAction = default(int))
 {
     this.Id                  = id;
     this.Name                = name;
     this.Type                = type;
     this.SiteUrl             = siteUrl;
     this.GroupEmail          = groupEmail;
     this.PrimaryContact      = primaryContact;
     this.PrimaryContactEmail = primaryContactEmail;
     this.Phase               = phase;
     this.IsCurrentRenewer    = isCurrentRenewer;
     this.CreatedTime         = createdTime;
     this.Status              = status;
     this.AutoImportProfileId = autoImportProfileId;
     this.PendingAction       = pendingAction;
 }
Exemple #29
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SiteList" /> class.
 /// </summary>
 /// <param name="id">id.</param>
 /// <param name="description">description.</param>
 /// <param name="title">title.</param>
 /// <param name="url">url.</param>
 /// <param name="department">department.</param>
 /// <param name="policyName">policyName.</param>
 /// <param name="policyId">policyId.</param>
 /// <param name="template">template.</param>
 /// <param name="owner">owner.</param>
 /// <param name="primaryContact">primaryContact.</param>
 /// <param name="primaryContactDisplayName">primaryContactDisplayName.</param>
 /// <param name="secondaryContact">secondaryContact.</param>
 /// <param name="secondaryContactDisplayName">secondaryContactDisplayName.</param>
 /// <param name="additionalAdministrators">additionalAdministrators.</param>
 /// <param name="additionalAdministratorDisplayNames">additionalAdministratorDisplayNames.</param>
 /// <param name="createdTime">createdTime.</param>
 /// <param name="status">status.</param>
 /// <param name="claimStatus">claimStatus.</param>
 /// <param name="sharing">sharing.</param>
 /// <param name="storageQuota">storageQuota.</param>
 /// <param name="storageUsed">storageUsed.</param>
 /// <param name="inactivityThresholdTime">inactivityThresholdTime.</param>
 /// <param name="leaseExpirationTime">leaseExpirationTime.</param>
 /// <param name="permissionRecertificationStatus">permissionRecertificationStatus.</param>
 /// <param name="metadataRecertificationStatus">metadataRecertificationStatus.</param>
 /// <param name="ownershipRecertificationStatus">ownershipRecertificationStatus.</param>
 /// <param name="geoLocation">geoLocation.</param>
 /// <param name="hub">hub.</param>
 /// <param name="phase">phase.</param>
 /// <param name="metadata">metadata.</param>
 public SiteList(Guid id = default(Guid), string description = default(string), string title = default(string), string url = default(string), string department = default(string), string policyName = default(string), Guid policyId = default(Guid), string template = default(string), string owner = default(string), string primaryContact = default(string), string primaryContactDisplayName = default(string), string secondaryContact = default(string), string secondaryContactDisplayName = default(string), string additionalAdministrators = default(string), string additionalAdministratorDisplayNames = default(string), string createdTime = default(string), SiteStatus status = default(SiteStatus), ClaimStatus claimStatus = default(ClaimStatus), SharingCapabilities sharing = default(SharingCapabilities), long storageQuota = default(long), long storageUsed = default(long), DateTime?inactivityThresholdTime = default(DateTime?), DateTime?leaseExpirationTime = default(DateTime?), RecertificationStatus permissionRecertificationStatus = default(RecertificationStatus), RecertificationStatus metadataRecertificationStatus = default(RecertificationStatus), RecertificationStatus ownershipRecertificationStatus = default(RecertificationStatus), string geoLocation = default(string), string hub = default(string), AutoImportPhase phase = default(AutoImportPhase), List <ReportMetadata> metadata = default(List <ReportMetadata>))
 {
     this.Id                                  = id;
     this.Description                         = description;
     this.Title                               = title;
     this.Url                                 = url;
     this.Department                          = department;
     this.PolicyName                          = policyName;
     this.PolicyId                            = policyId;
     this.Template                            = template;
     this.Owner                               = owner;
     this.PrimaryContact                      = primaryContact;
     this.PrimaryContactDisplayName           = primaryContactDisplayName;
     this.SecondaryContact                    = secondaryContact;
     this.SecondaryContactDisplayName         = secondaryContactDisplayName;
     this.AdditionalAdministrators            = additionalAdministrators;
     this.AdditionalAdministratorDisplayNames = additionalAdministratorDisplayNames;
     this.CreatedTime                         = createdTime;
     this.Status                              = status;
     this.ClaimStatus                         = claimStatus;
     this.Sharing                             = sharing;
     this.StorageQuota                        = storageQuota;
     this.StorageUsed                         = storageUsed;
     this.InactivityThresholdTime             = inactivityThresholdTime;
     this.LeaseExpirationTime                 = leaseExpirationTime;
     this.PermissionRecertificationStatus     = permissionRecertificationStatus;
     this.MetadataRecertificationStatus       = metadataRecertificationStatus;
     this.OwnershipRecertificationStatus      = ownershipRecertificationStatus;
     this.GeoLocation                         = geoLocation;
     this.Hub                                 = hub;
     this.Phase                               = phase;
     this.Metadata                            = metadata;
 }
Exemple #30
0
 public Site(int siteId, string siteName, SiteStatus status, SiteFacilityType siteFacitlityType, SiteType siteType,
             DateTimeRange contractDuration, PhoneNumber primaryPhoneNumber, Contact contactDetails, VO.Address address, string email,
             string county, string countyServed, LicenceStatus licenceStatus, IEnumerable <SiteHoliday> holidays, IEnumerable <SiteRate> rates /*, IBus eventBus*/)
     : this(GuidHelper.NewSequentialGuid(), siteId, siteName, status, siteFacitlityType, siteType, contractDuration, primaryPhoneNumber, contactDetails, address, email, county, countyServed, licenceStatus, holidays, rates /*, eventBus*/)
 {
 }
Exemple #31
0
        /// <summary>
        /// Validates the site.
        /// </summary>
        /// <param name="site">The site.</param>
        /// <returns></returns>
        private async Task <SiteStatus> ValidateSite(Site site)
        {
            SiteStatus validationResult = 0;

            var existingCustomer = (await customerRepository.FindAsync(c => c.Id == site.CustomerId)).SingleOrDefault();

            if (existingCustomer == null)
            {
                validationResult |= SiteStatus.CustomerNotFound;
            }

            if (site.ParentOrganizationId.HasValue)
            {
                var existingOrganization = (await organizationRepository
                                            .FindAsync(o => o.CustomerId == site.CustomerId && o.Id == site.ParentOrganizationId.Value)
                                            ).SingleOrDefault();

                if (existingOrganization == null)
                {
                    validationResult |= SiteStatus.OrganizationNotFound;
                }
            }

            if (!string.IsNullOrEmpty(site.Name) && (
                    site.IsNew
                    ? (await siteRepository.FindAsync(s => s.CustomerId == site.CustomerId && s.Name.ToLower() == site.Name.ToLower())).Any()
                    : (await siteRepository.FindAsync(s => s.CustomerId == site.CustomerId && s.Name.ToLower() == site.Name.ToLower() &&
                                                      s.Id != site.Id)).Any())
                )
            {
                validationResult |= SiteStatus.NameConflict;
            }

            if (!string.IsNullOrEmpty(site.NationalProviderIdentificator) && (
                    site.IsNew
                    ? (await siteRepository.FindAsync(s => s.CustomerId == site.CustomerId &&
                                                      s.NationalProviderIdentificator ==
                                                      site.NationalProviderIdentificator)).Any()
                    : (await siteRepository.FindAsync(s => s.CustomerId == site.CustomerId &&
                                                      s.NationalProviderIdentificator ==
                                                      site.NationalProviderIdentificator && s.Id != site.Id)).Any())
                )
            {
                validationResult |= SiteStatus.NPIConflict;
            }

            if (!string.IsNullOrEmpty(site.CustomerSiteId) && (
                    site.IsNew
                    ? (await siteRepository.FindAsync(s => s.CustomerId == site.CustomerId &&
                                                      s.CustomerSiteId == site.CustomerSiteId)).Any()
                    : (await siteRepository.FindAsync(s => s.CustomerId == site.CustomerId &&
                                                      s.CustomerSiteId == site.CustomerSiteId && s.Id != site.Id))
                    .Any())
                )
            {
                validationResult |= SiteStatus.CustomerSiteIdConflict;
            }

            if (site.CategoriesOfCare != null && site.CategoriesOfCare.Any())
            {
                var categoriesOfCareIds = site.CategoriesOfCare.Select(c => c.Id).Distinct().ToList();

                var existingCategoriesOfCare = await categoryOfCareRepository
                                               .FindAsync(c => c.CustomerId == site.CustomerId && categoriesOfCareIds.Contains(c.Id));

                if (categoriesOfCareIds.Count != existingCategoriesOfCare.Count)
                {
                    validationResult |= SiteStatus.CategoryOfCareConflict;
                }
                else
                {
                    site.CategoriesOfCare = existingCategoriesOfCare;
                }
            }

            return(validationResult);
        }
 public void SetStatus(SiteStatus status)
 {
     Status = status;
 }
Exemple #33
0
 public Site(int siteId, string siteName, SiteStatus status, SiteFacilityType siteFacitlityType, SiteType siteType,
     DateTimeRange contractDuration, PhoneNumber primaryPhoneNumber, Contact contactDetails, VO.Address address, string email,
     string county, string countyServed, LicenceStatus licenceStatus, IEnumerable<SiteHoliday> holidays, IEnumerable<SiteRate> rates/*, IBus eventBus*/)
     : this(GuidHelper.NewSequentialGuid(), siteId, siteName, status, siteFacitlityType, siteType, contractDuration, primaryPhoneNumber, contactDetails, address, email, county, countyServed, licenceStatus, holidays, rates/*, eventBus*/)
 {
 }