Esempio n. 1
0
        public ActionConfirmation Delete(int id)
        {
            SupportTeam supportTeamToDelete = _supportTeamRepository.Get(id);

            if (supportTeamToDelete != null)
            {
                _supportTeamRepository.Delete(supportTeamToDelete);

                try
                {
                    _supportTeamRepository.DbContext.CommitChanges();

                    return(ActionConfirmation.CreateSuccessConfirmation(
                               "The support team was successfully deleted."));
                }
                catch
                {
                    _supportTeamRepository.DbContext.RollbackTransaction();

                    return(ActionConfirmation.CreateFailureConfirmation(
                               "A problem was encountered preventing the support team from being deleted. " +
                               "Another item likely depends on this supportTeam."));
                }
            }
            else
            {
                return(ActionConfirmation.CreateFailureConfirmation(
                           "The support team could not be found for deletion. It may already have been deleted."));
            }
        }
        public void CannotUpdateInvalidSupportTeamFromForm()
        {
            // Establish Context
            var supportTeamFromForm = new SupportTeam();
            var viewModelToExpect   = new SupportTeamFormViewModel();

            var testUser = new Person();

            testUser.SetAssignedIdTo(1);
            _authenticationProvider.Expect(r => r.GetLoggedInUser()).Return("user1");
            _personManagementService.Expect(r => r.GetByUserName("user1")).Return(testUser);


            supportTeamManagementService.Expect(r => r.UpdateWith(supportTeamFromForm, 0))
            .Return(ActionConfirmation.CreateFailureConfirmation("not updated"));
            supportTeamManagementService.Expect(r => r.CreateFormViewModelFor(supportTeamFromForm))
            .Return(viewModelToExpect);

            // Act
            ViewResult result =
                supportTeamsController.Edit(supportTeamFromForm).AssertViewRendered();

            // Assert
            result.ViewData.Model.ShouldNotBeNull();
            (result.ViewData.Model as SupportTeamFormViewModel).ShouldNotBeNull();
        }
Esempio n. 3
0
        public ActionResult Create(SupportTeam supportTeam)
        {
            try
            {
                if (ViewData.ModelState.IsValid)
                {
                    supportTeam.LastUpdateTimeStamp = DateTime.Now;
                    supportTeam.LastUpdateUser      = GetCurrentUser().Id;
                    ActionConfirmation saveOrUpdateConfirmation =
                        _supportTeamManagementService.SaveOrUpdate(supportTeam);

                    if (saveOrUpdateConfirmation.WasSuccessful)
                    {
                        TempData[ControllerEnums.GlobalViewDataProperty.PageMessage.ToString()] =
                            saveOrUpdateConfirmation.Message;
                        return(RedirectToAction("Search"));
                    }
                }
                else
                {
                    supportTeam = null;
                }
            }
            catch (PreconditionException pce)
            {
                TempData[ControllerEnums.GlobalViewDataProperty.PageMessage.ToString()] =
                    pce.Message;
            }

            SupportTeamFormViewModel viewModel =
                _supportTeamManagementService.CreateFormViewModelFor(supportTeam);

            return(View(viewModel));
        }
Esempio n. 4
0
 private void TransferFormValuesTo(SupportTeam supportTeamToUpdate, SupportTeam supportTeamFromForm)
 {
     supportTeamToUpdate.TeamName            = supportTeamFromForm.TeamName;
     supportTeamToUpdate.PhoneNumber         = supportTeamFromForm.PhoneNumber;
     supportTeamToUpdate.SupervisorId        = supportTeamFromForm.SupervisorId;
     supportTeamToUpdate.LastUpdateTimeStamp = supportTeamFromForm.LastUpdateTimeStamp;
     supportTeamToUpdate.LastUpdateUser      = supportTeamFromForm.LastUpdateUser;
 }
        public ActionResult DeleteConfirmed(int id)
        {
            SupportTeam supportTeam = db.MySupportTeam.Find(id);

            db.MySupportTeam.Remove(supportTeam);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Esempio n. 6
0
        public SupportTeamFormViewModel CreateFormViewModelFor(SupportTeam supportTeam)
        {
            var viewModel = new SupportTeamFormViewModel {
                SupportTeam = supportTeam
            };

            LoadViewModel(viewModel);
            return(viewModel);
        }
 public ActionResult Edit([Bind(Include = "Id,FullName,Email,Phone,Title,PerMinuteCost")] SupportTeam supportTeam)
 {
     if (ModelState.IsValid)
     {
         db.Entry(supportTeam).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(supportTeam));
 }
        public ActionResult Create([Bind(Include = "Id,FullName,Email,Phone,Title,PerMinuteCost")] SupportTeam supportTeam)
        {
            if (ModelState.IsValid)
            {
                db.MySupportTeam.Add(supportTeam);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(supportTeam));
        }
Esempio n. 9
0
        public SupportTeam ToEntity()
        {
            var steam = new SupportTeam
            {
                ID = ID,
                Text = Text,
                Value = Value,
                Color = Color,
                Show = Show,
            };

            return steam;
        }
Esempio n. 10
0
        public void CannotSaveOrUpdateInvalidSupportTeam()
        {
            // Establish Context
            var invalidSupportTeam = new SupportTeam();

            // Act
            ActionConfirmation confirmation =
                supportTeamManagementService.SaveOrUpdate(invalidSupportTeam);

            // Assert
            confirmation.ShouldNotBeNull();
            confirmation.WasSuccessful.ShouldBeFalse();
            confirmation.Value.ShouldBeNull();
        }
Esempio n. 11
0
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            SupportTeam supportTeam = db.MySupportTeam.Find(id);

            if (supportTeam == null)
            {
                return(HttpNotFound());
            }
            return(View(supportTeam));
        }
Esempio n. 12
0
        public void CanCompareSupportTeams()
        {
            var instance = new SupportTeam {
                TeamName = "Team 1", PhoneNumber = "123-4567", SupervisorId = 1
            };

            var instanceToCompareTo = new SupportTeam
            {
                TeamName     = "Team 1",
                PhoneNumber  = "123-4567",
                SupervisorId = 1
            };

            instance.ShouldEqual(instanceToCompareTo);
        }
Esempio n. 13
0
        public void CanSaveOrUpdateValidSupportTeam()
        {
            // Establish Context
            SupportTeam validSupportTeam =
                SupportTeamInstanceFactory.CreateValidTransientSupportTeam();

            // Act
            ActionConfirmation confirmation =
                supportTeamManagementService.SaveOrUpdate(validSupportTeam);

            // Assert
            confirmation.ShouldNotBeNull();
            confirmation.WasSuccessful.ShouldBeTrue();
            confirmation.Value.ShouldNotBeNull();
            confirmation.Value.ShouldEqual(validSupportTeam);
        }
        public void CanShowSupportTeam()
        {
            // Establish Context
            SupportTeam supportTeam =
                SupportTeamInstanceFactory.CreateValidTransientSupportTeam();

            supportTeamManagementService.Expect(r => r.Get(1))
            .Return(supportTeam);

            // Act
            ViewResult result = supportTeamsController.Show(1).AssertViewRendered();

            // Assert
            result.ViewData.Model.ShouldNotBeNull();
            (result.ViewData.Model as SupportTeam).ShouldNotBeNull();
            (result.ViewData.Model as SupportTeam).ShouldEqual(supportTeam);
        }
Esempio n. 15
0
        public void CanGetSupportTeam()
        {
            // Establish Context
            SupportTeam supportTeamToExpect =
                SupportTeamInstanceFactory.CreateValidTransientSupportTeam();

            supportTeamRepository.Expect(r => r.Get(1))
            .Return(supportTeamToExpect);

            // Act
            SupportTeam supportTeamRetrieved =
                supportTeamManagementService.Get(1);

            // Assert
            supportTeamRetrieved.ShouldNotBeNull();
            supportTeamRetrieved.ShouldEqual(supportTeamToExpect);
        }
Esempio n. 16
0
        public void CanDeleteSupportTeam()
        {
            // Establish Context
            var supportTeamToDelete = new SupportTeam();

            supportTeamRepository.Expect(r => r.Get(1))
            .Return(supportTeamToDelete);

            // Act
            ActionConfirmation confirmation =
                supportTeamManagementService.Delete(1);

            // Assert
            confirmation.ShouldNotBeNull();
            confirmation.WasSuccessful.ShouldBeTrue();
            confirmation.Value.ShouldBeNull();
        }
Esempio n. 17
0
        public List <SupportTeam> GetSupportTeam()
        {
            List <SupportTeam> st_list = new List <SupportTeam>();
            DataTable          dt      = new DAL().GetSupportTeam();

            if (dt != null)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    SupportTeam qr = new SupportTeam();
                    qr.Team_name = dt.Rows[i]["Team_name"].ToString();
                    //qr.alias = dt.Rows[i]["alias"].ToString();

                    st_list.Add(qr);
                }
            }
            return(st_list);
        }
Esempio n. 18
0
        private async Task ReadTeamStatus(SupportTeam team, PerformContext context)
        {
            var number = await TaskQueue.Enqueue(async() =>
            {
                using (var helper = new ATHelper(team.ConnectionString))
                {
                    await helper.OpenAsync();
                    return(await helper.GetForwardedPhoneNumber());
                }
            });

            context.WriteLine($"Team {team.Name} is forwarding to '{number}'.");

            var state = await db.ForwardingStates.Where(s => s.TeamId == team.Id).OrderByDescending(s => s.When)
                        .FirstOrDefaultAsync();

            if (state?.RawPhoneNumber == number)
            {
                context.WriteLine("No state change, completed check.");
                return;
            }

            context.WriteLine($"Change detected from '{state?.RawPhoneNumber}' to '{number}'.");
            var newState = new ForwardingState
            {
                Team                = team,
                When                = DateTimeOffset.Now,
                RawPhoneNumber      = number,
                DetectedPhoneNumber = db.UserPhoneNumbers.FirstOrDefault(p => p.Value == number)
            };

            db.ForwardingStates.Add(newState);
            await db.SaveChangesAsync();

            var prevStateId = state?.Id;
            await db.Teams.Where(t => t.Id == team.Id).SelectMany(t => t.Members).Select(m => m.User)
            .SelectMany(u => u.ApiKeys).Where(a => a.CallbackUrl != null).ForEachAsync(apiKey =>
            {
                context.WriteLine($"Scheduling notification to {apiKey.CallbackUrl}.");
                BackgroundJob.Enqueue <IPublisher>(p =>
                                                   p.NotifyStateChange(prevStateId, newState.Id, apiKey.CallbackUrl, null));
            });
        }
Esempio n. 19
0
        public ActionConfirmation SaveOrUpdate(SupportTeam supportTeam)
        {
            if (supportTeam.IsValid())
            {
                _supportTeamRepository.SaveOrUpdate(supportTeam);

                ActionConfirmation saveOrUpdateConfirmation = ActionConfirmation.CreateSuccessConfirmation(
                    "The support team was successfully saved.");
                saveOrUpdateConfirmation.Value = supportTeam;

                return(saveOrUpdateConfirmation);
            }
            else
            {
                _supportTeamRepository.DbContext.RollbackTransaction();

                return(ActionConfirmation.CreateFailureConfirmation(
                           "The support team could not be saved due to missing or invalid information."));
            }
        }
Esempio n. 20
0
        public void CanCreateFormViewModelForSupportTeam()
        {
            // Establish Context
            var viewModelToExpect = new SupportTeamFormViewModel();

            SupportTeam supportTeam =
                SupportTeamInstanceFactory.CreateValidTransientSupportTeam();

            supportTeamRepository.Expect(r => r.Get(1))
            .Return(supportTeam);

            // Act
            SupportTeamFormViewModel viewModelRetrieved =
                supportTeamManagementService.CreateFormViewModelFor(1);

            // Assert
            viewModelRetrieved.ShouldNotBeNull();
            viewModelRetrieved.SupportTeam.ShouldNotBeNull();
            viewModelRetrieved.SupportTeam.ShouldEqual(supportTeam);
        }
Esempio n. 21
0
        public void CannotUpdateWithInvalidSupportTeamFromForm()
        {
            // Establish Context
            var invalidSupportTeamFromForm = new SupportTeam();

            // Intentionally empty to ensure successful transfer of values
            var supportTeamFromDb = new SupportTeam();

            supportTeamRepository.Expect(r => r.Get(1))
            .Return(supportTeamFromDb);

            // Act
            ActionConfirmation confirmation =
                supportTeamManagementService.UpdateWith(invalidSupportTeamFromForm, 1);

            // Assert
            confirmation.ShouldNotBeNull();
            confirmation.WasSuccessful.ShouldBeFalse();
            confirmation.Value.ShouldBeNull();
        }
        public void CanCreateValidSupportTeamFromForm()
        {
            // Establish Context
            var supportTeamFromForm = new SupportTeam();
            var testUser            = new Person();

            testUser.SetAssignedIdTo(1);
            _authenticationProvider.Expect(r => r.GetLoggedInUser()).Return("user1");
            _personManagementService.Expect(r => r.GetByUserName("user1")).Return(testUser);

            supportTeamManagementService.Expect(r => r.SaveOrUpdate(supportTeamFromForm))
            .Return(ActionConfirmation.CreateSuccessConfirmation("saved"));

            // Act
            RedirectToRouteResult redirectResult =
                supportTeamsController.Create(supportTeamFromForm)
                .AssertActionRedirect().ToAction("Search");

            // Assert
            supportTeamsController.TempData[ControllerEnums.GlobalViewDataProperty.PageMessage.ToString()].ToString()
            .ShouldEqual("saved");
        }
Esempio n. 23
0
        public ActionConfirmation UpdateWith(SupportTeam supportTeamFromForm, int idOfSupportTeamToUpdate)
        {
            SupportTeam supportTeamToUpdate =
                _supportTeamRepository.Get(idOfSupportTeamToUpdate);

            TransferFormValuesTo(supportTeamToUpdate, supportTeamFromForm);

            if (supportTeamToUpdate.IsValid())
            {
                ActionConfirmation updateConfirmation = ActionConfirmation.CreateSuccessConfirmation(
                    "The support team was successfully updated.");
                updateConfirmation.Value = supportTeamToUpdate;

                return(updateConfirmation);
            }
            else
            {
                _supportTeamRepository.DbContext.RollbackTransaction();

                return(ActionConfirmation.CreateFailureConfirmation(
                           "The support team could not be saved due to missing or invalid information."));
            }
        }
Esempio n. 24
0
        public void CanGetAllSupportTeams()
        {
            // Establish Context
            IList <SupportTeam> supportTeamsToExpect = new List <SupportTeam>();

            SupportTeam supportTeam =
                SupportTeamInstanceFactory.CreateValidTransientSupportTeam();

            supportTeamsToExpect.Add(supportTeam);

            supportTeamRepository.Expect(r => r.GetAll(Arg <string> .Is.Anything, Arg <string> .Is.Anything))
            .Return(supportTeamsToExpect);

            // Act
            IList <SupportTeam> supportTeamsRetrieved =
                supportTeamManagementService.GetAll();

            // Assert
            supportTeamsRetrieved.ShouldNotBeNull();
            supportTeamsRetrieved.Count.ShouldEqual(1);
            supportTeamsRetrieved[0].ShouldNotBeNull();
            supportTeamsRetrieved[0].ShouldEqual(supportTeam);
        }
Esempio n. 25
0
        public void CanUpdateWithValidSupportTeamFromForm()
        {
            // Establish Context
            SupportTeam validSupportTeamFromForm =
                SupportTeamInstanceFactory.CreateValidTransientSupportTeam();

            // Intentionally empty to ensure successful transfer of values
            var supportTeamFromDb = new SupportTeam();

            supportTeamRepository.Expect(r => r.Get(1))
            .Return(supportTeamFromDb);

            // Act
            ActionConfirmation confirmation =
                supportTeamManagementService.UpdateWith(validSupportTeamFromForm, 1);

            // Assert
            confirmation.ShouldNotBeNull();
            confirmation.WasSuccessful.ShouldBeTrue();
            confirmation.Value.ShouldNotBeNull();
            confirmation.Value.ShouldEqual(supportTeamFromDb);
            confirmation.Value.ShouldEqual(validSupportTeamFromForm);
        }
Esempio n. 26
0
        public SupportTeamFormViewModel CreateFormViewModelFor(int supportTeamId)
        {
            SupportTeam supportTeam = _supportTeamRepository.Get(supportTeamId);

            return(CreateFormViewModelFor(supportTeam));
        }
Esempio n. 27
0
        public ActionResult Show(int id)
        {
            SupportTeam supportTeam = _supportTeamManagementService.Get(id);

            return(View(supportTeam));
        }