public int SaveForm(RepoFormViewModel formViewModel)
        {
            var rf = formViewModel.Id > 0 ? UpdateForm(formViewModel) : NewForm(formViewModel);

            Hub.Clients.All.UpdateList(_mapper.Map <RepoFormViewModel>(rf));

            return(rf.Id);
        }
        private RepoForm UpdateForm(RepoFormViewModel formViewModel)
        {
            var repoFormModel = _mapper.Map <RepoForm>(formViewModel);
            var user          = UpdateUser(repoFormModel);

            repoFormModel.ModifiedDate     = DateTime.Now;
            repoFormModel.ModifiedByUserId = user.Id;


            var repoFormTarget = _ctx.RepoForms.First(r => r.Id == repoFormModel.Id);

            Common.MergeObjects(repoFormModel, repoFormTarget);

            _ctx.SaveChanges();

            return(repoFormModel);
        }
        private RepoForm NewForm(RepoFormViewModel formViewModel)
        {
            var repoFormModel = _mapper.Map <RepoForm>(formViewModel);
            var user          = UpdateUser(repoFormModel);

            repoFormModel.CreatorUserId    = user.Id;
            repoFormModel.ModifiedDate     = DateTime.Now;
            repoFormModel.CreatedDate      = DateTime.Now;
            repoFormModel.ModifiedByUserId = user.Id;


            _ctx.RepoForms.Add(repoFormModel);

            _ctx.SaveChanges();


            var debugmode = !Request.RequestUri.ToString().Contains("plsf");

            Email.AssignmentWriteUp(user.WinAuthName, repoFormModel.Investigator, repoFormModel.AccountNumber, debugmode);

            return(repoFormModel);
        }
        public IHttpActionResult GetForm(int id)
        {
            RepoFormViewModel repoVm;

            if (id == 0)
            {
                repoVm = new RepoFormViewModel
                {
                    CloseTypeOptions = _mapper.Map <List <CloseTypeViewModel> >(_ctx.CloseTypes),
                    ClientOptions    = _mapper.Map <List <ClientViewModel> >(_ctx.Clients),
                    CreatedDate      = DateTime.Now
                };
            }
            else
            {
                repoVm = _mapper.Map <RepoFormViewModel>(_ctx.RepoForms.Find(id));
                repoVm.CloseTypeOptions = _mapper.Map <List <CloseTypeViewModel> >(_ctx.CloseTypes);
                repoVm.ClientOptions    = _mapper.Map <List <ClientViewModel> >(_ctx.Clients);
            }


            return(Ok(repoVm));
        }