Esempio n. 1
0
        public void AddAutomationVersion(AutomationViewModel automationViewModel)
        {
            AutomationVersion automationVersion = new AutomationVersion();

            automationVersion.CreatedBy    = httpContextAccessor.HttpContext.User.Identity.Name;
            automationVersion.CreatedOn    = DateTime.UtcNow;
            automationVersion.AutomationId = (Guid)automationViewModel.Id;

            if (string.IsNullOrEmpty(automationViewModel.Status))
            {
                automationVersion.Status = "Published";
            }
            else
            {
                automationVersion.Status = automationViewModel.Status;
            }
            automationVersion.VersionNumber = automationViewModel.VersionNumber;

            if (automationVersion.Status.Equals("Published"))
            {
                automationVersion.PublishedBy    = httpContextAccessor.HttpContext.User.Identity.Name;
                automationVersion.PublishedOnUTC = DateTime.UtcNow;
            }
            else
            {
                automationVersion.PublishedBy    = null;
                automationVersion.PublishedOnUTC = null;
            }

            int automationVersionNumber = 0;

            automationVersion.VersionNumber = automationVersionNumber;
            List <Automation> automations = repo.Find(null, x => x.Name?.Trim().ToLower() == automationViewModel.Name?.Trim().ToLower())?.Items;

            if (automations != null)
            {
                foreach (Automation automation in automations)
                {
                    var automationVersionEntity = automationVersionRepository.Find(null, q => q?.AutomationId == automation?.Id).Items?.FirstOrDefault();
                    if (automationVersionEntity != null && automationVersionNumber < automationVersionEntity.VersionNumber)
                    {
                        automationVersionNumber = automationVersionEntity.VersionNumber;
                    }
                }
            }

            automationVersion.VersionNumber = automationVersionNumber + 1;

            automationVersionRepository.Add(automationVersion);
        }