Ejemplo n.º 1
0
        // PUT api/Trip/5
        private IHttpActionResult PutTrip(int id, Trip trip)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != trip.Id)
            {
                return(BadRequest());
            }

            Uow.Repository <Trip>().Update(trip);

            try
            {
                Uow.Save();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!TripExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Ejemplo n.º 2
0
        public MemberView PatchPersonalInfo(string userName, MemberPersonalInfoView memberPreferencesView)
        {
            if (!EmailChecker.IsValidEmail(memberPreferencesView.Email))
            {
                throw new CoralTimeDangerException("Invalid email");
            }

            if (_isDemo)
            {
                throw new CoralTimeForbiddenException("Full name can't be changed on demo site");
            }

            CheckRelatedEntities(userName, out var memberByName);
            memberByName          = Uow.MemberRepository.GetQueryByUserName(userName);
            memberByName.FullName = memberPreferencesView.FullName;

            try
            {
                Uow.MemberRepository.Update(memberByName);

                Uow.Save();

                _memberService.ChangeEmailByUserAsync(memberByName, memberPreferencesView.Email).GetAwaiter().GetResult();
                _memberService.UpdateUserClaims(memberByName.Id);

                Uow.MemberRepository.LinkedCacheClear();
                return(memberByName.GetView(Mapper));
            }
            catch (Exception e)
            {
                throw new CoralTimeSafeEntityException("An error occurred while updating member", e);
            }
        }
Ejemplo n.º 3
0
        public IHttpActionResult DeleteTrip(int id)
        {
            try
            {
                Trip trip = Uow.Repository <Trip>().Find(id);
                if (trip == null)
                {
                    return(NotFound());
                }
                //find tconnects that reference the steps owned by this trip
                var stepsForTrip = Uow.Repository <Step>().Query().Get().Include(s => s.Block).Where(s => s.TripId.Equals(trip.Id)).Select(i => i.Id).ToList();

                List <TConnect> tconn = Uow.Repository <TConnect>().Query().Get().Where(t => stepsForTrip.Any(s => s.Equals(t.InboundStepId))).ToList();
                foreach (TConnect tc in tconn)
                {
                    //Delete the tconnect
                    // TConnect tonnect = Uow.Repository<Trip>().Find(tconn.id);
                    Uow.Repository <TConnect>().Delete(tc);
                }
                //Delete the trip (cascade delete will do the steps).
                Uow.Repository <Trip>().Delete(trip);
                Uow.Save();

                return(Ok(trip));
            }
            catch (Exception ex)
            {
                string msg = RecordException(ex, "TripController.DeleteTrip");
                HttpResponseMessage responseMessage = Request.CreateErrorResponse(HttpStatusCode.BadRequest, msg);
                throw new HttpResponseException(responseMessage);
            }
        }
Ejemplo n.º 4
0
        public string UploadImage(IFormFile uploadedFile)
        {
            var member = MemberImpersonated;

            CheckFileNameAndSize(uploadedFile);

            var updatedMemberImage = CreateUpdatedMemberImage(uploadedFile, member);

            var memberImage = Uow.MemberImageRepository.LinkedCacheGetByMemberId(member.Id);

            if (memberImage == null)
            {
                memberImage = new MemberImage().UpdateProperties(updatedMemberImage);
                Uow.MemberImageRepository.Insert(memberImage);
            }
            else
            {
                memberImage.UpdateProperties(updatedMemberImage);
                Uow.MemberImageRepository.Update(memberImage);
            }

            Uow.Save();
            Uow.MemberImageRepository.LinkedCacheClear();

            SaveMemberImageToFolder(memberImage);

            var urlAvatar = GetUrlAvatar(member.Id);

            return(urlAvatar);
        }
Ejemplo n.º 5
0
        public ClientView Create(ClientView clientData)
        {
            if (!IsNameUnique(clientData.Name))
            {
                throw new CoralTimeAlreadyExistsException($"Client with name {clientData.Name} already exist.");
            }

            var client = Mapper.Map <ClientView, Client>(clientData);

            client.IsActive = true;

            BLHelpers.CheckClientsErrors(client);

            try
            {
                Uow.ClientRepository.Insert(client);
                Uow.Save();

                Uow.ClientRepository.LinkedCacheClear();
            }
            catch (Exception e)
            {
                throw new CoralTimeDangerException("An error occurred while creating new client", e);
            }

            var getClient = Uow.ClientRepository.LinkedCacheGetById(client.Id);

            var result = getClient.GetView(Mapper);

            return(result);
        }
Ejemplo n.º 6
0
        public ClientView Update(dynamic clientData)
        {
            var client = Uow.ClientRepository.GetById((int)clientData.Id);

            if (client == null)
            {
                throw new CoralTimeEntityNotFoundException($"Client with id {clientData.Id} not found");
            }

            UpdateService <Client> .UpdateObject(clientData, client);

            BLHelpers.CheckClientsErrors(client);

            // Get all project linked to this client and remember projects that active before an archiving.
            RememberProjectStatusBeforeArchiving(clientData, client);

            try
            {
                Uow.ClientRepository.Update(client);
                Uow.Save();

                Uow.ClientRepository.LinkedCacheClear();
            }
            catch (Exception e)
            {
                throw new CoralTimeDangerException("An error occurred while updating the client", e);
            }

            var resultClient = Uow.ClientRepository.LinkedCacheGetById(client.Id);
            var result       = resultClient.GetView(Mapper);

            return(result);
        }
Ejemplo n.º 7
0
        public bool Delete(int id)
        {
            var projectById = Uow.ProjectRepository.LinkedCacheGetById(id);

            if (projectById == null || !projectById.IsActive)
            {
                {
                    throw new CoralTimeEntityNotFoundException("project with id " +
                                                               $"{id} not found or is not active");
                }
            }

            try
            {
                Uow.ProjectRepository.Delete(projectById.Id);
                Uow.Save();

                Uow.ProjectRepository.LinkedCacheClear();

                return(true);
            }
            catch (Exception e)
            {
                throw new CoralTimeDangerException("An error occurred while deleting timeEntryType", e);
            }
        }
        public void SaveCustomQuery(ReportsSettingsView reportsSettingsView)
        {
            if (!IsDefaultQuery(reportsSettingsView.QueryName))
            {
                var memberId = MemberImpersonated.Id;

                var reportsSettings = Uow.ReportsSettingsRepository.GetEntityFromContext_ByMemberIdQueryName(memberId, reportsSettingsView.QueryName);
                if (reportsSettings == null)
                {
                    ResetIsCustomQueryForAllQueryThisMember(memberId);

                    reportsSettings = new ReportsSettings().GetModel(reportsSettingsView, memberId);
                    Uow.ReportsSettingsRepository.Insert(reportsSettings);

                    Uow.Save();
                    Uow.ReportsSettingsRepository.LinkedCacheClear();
                }
                else
                {
                    throw new CoralTimeDangerException("You try to save existed custom query");
                }
            }
            else
            {
                throw new CoralTimeDangerException("You try to save not custom query");
            }
        }
Ejemplo n.º 9
0
        private void SaveQueryToReportsSettings(ReportsSettingsView reportsSettingsView, int memberId)
        {
            var queryFromReportsSettings = Uow.ReportsSettingsRepository.GetEntityFromContex_ByMemberidQueryname(memberId, reportsSettingsView.QueryName);

            try
            {
                if (queryFromReportsSettings == null)
                {
                    queryFromReportsSettings = queryFromReportsSettings.CreateModelForInsert(reportsSettingsView, memberId);

                    SetIsCurrentQueryTrue(queryFromReportsSettings);

                    Uow.ReportsSettingsRepository.Insert(queryFromReportsSettings);
                }
                else
                {
                    queryFromReportsSettings = queryFromReportsSettings.UpdateModelForUpdates(reportsSettingsView, memberId);

                    SetIsCurrentQueryTrue(queryFromReportsSettings);

                    Uow.ReportsSettingsRepository.Update(queryFromReportsSettings);
                }

                Uow.Save();
            }
            catch (Exception e)
            {
                throw new CoralTimeDangerException("An error occurred while work with Reports Settings", e);
            }
        }
Ejemplo n.º 10
0
        public HttpResponseMessage DeleteState(int id)
        {
            Uow.States.Delete(id);
            Uow.Save();

            return(Request.CreateResponse(HttpStatusCode.NoContent));
        }
Ejemplo n.º 11
0
        public TaskTypeView Create(TaskTypeView taskTypeView)
        {
            IsTaskTypeNameHasChars(taskTypeView.Name);
            IsNameUnique(taskTypeView);

            if (taskTypeView.ProjectId != null && !ApplicationUserCurrent.IsAdmin)
            {
                if (taskTypeView.ProjectId != null)
                {
                    var project = Uow.ProjectRepository.LinkedCacheGetById((int)taskTypeView.ProjectId);
                    if (project == null)
                    {
                        throw new CoralTimeEntityNotFoundException($"Project with id {taskTypeView.ProjectId} not found");
                    }

                    var managerRoleId = Uow.ProjectRoleRepository.GetManagerRoleId();

                    var memberProjectRole = Uow.MemberProjectRoleRepository.LinkedCacheGetList().FirstOrDefault(r => r.MemberId == MemberCurrent.Id && r.ProjectId == project.Id && r.RoleId == managerRoleId);
                    if (memberProjectRole == null)
                    {
                        throw new CoralTimeForbiddenException("Forbidden");
                    }
                }
            }

            var taskType = taskTypeView.GetModel(Mapper, true);

            Uow.TaskTypeRepository.Insert(taskType);
            Uow.Save();
            Uow.TaskTypeRepository.LinkedCacheClear();

            return(Uow.TaskTypeRepository.LinkedCacheGetById(taskType.Id).GetView(Mapper));
        }
Ejemplo n.º 12
0
        public HttpResponseMessage EditState(int id, [FromBody] State state)
        {
            Uow.States.EditState(id, state);
            Uow.Save();

            return(Request.CreateResponse(HttpStatusCode.NoContent));
        }
Ejemplo n.º 13
0
        public void DeleteCustomQuery(int id, string userName)
        {
            Uow.UserRepository.GetRelatedUserByName(userName);
            var memberId = Uow.MemberRepository.GetQueryByUserName(userName).Id;

            var getReportsSettingsByid = Uow.ReportsSettingsRepository.GetEntityOutOfContex_ByMemberidQueryId(memberId: memberId, queryId: id);

            CheckCustomQueryForThisMember(id, getReportsSettingsByid);

            if (!IsDefaultQuery(getReportsSettingsByid.QueryName))
            {
                try
                {
                    Uow.ReportsSettingsRepository.Delete(id);
                    Uow.Save();
                }
                catch (Exception e)
                {
                    throw new CoralTimeDangerException("An error occurred while work with Reports Settings", e);
                }
            }
            else
            {
                throw new CoralTimeDangerException("You cannot delete default query for ReportsSettings");
            }
        }
Ejemplo n.º 14
0
        public void SaveCurrentQuery(ReportsSettingsView reportsSettingsView, string userName)
        {
            Uow.UserRepository.GetRelatedUserByName(userName);
            var memberId = Uow.MemberRepository.GetQueryByUserName(userName).Id;

            if (IsDefaultQuery(reportsSettingsView.QueryName))
            {
                SaveQuery(reportsSettingsView, memberId);
            }
            else
            {
                var queryFromReportsSettings = Uow.ReportsSettingsRepository.GetEntityFromContex_ByMemberidQueryname(memberId, reportsSettingsView.QueryName);
                if (queryFromReportsSettings != null && !queryFromReportsSettings.IsCurrentQuery)
                {
                    try
                    {
                        ResetIsCustomQueryForAllQueries(memberId);

                        SetIsCurrentQueryTrue(queryFromReportsSettings);

                        Uow.ReportsSettingsRepository.Update(queryFromReportsSettings);

                        Uow.Save();
                    }
                    catch (Exception e)
                    {
                        throw new CoralTimeDangerException("An error occurred while work with Reports Settings", e);
                    }
                }
            }
        }
Ejemplo n.º 15
0
        public void Delete(int timeEntryId)
        {
            var timeEntryById = GetRelatedTimeEntryById(timeEntryId);

            var timeEntryView = new TimeEntryView
            {
                ProjectId   = timeEntryById.ProjectId,
                MemberId    = timeEntryById.MemberId,
                TaskTypesId = timeEntryById.TaskTypesId,
                Date        = timeEntryById.Date
            };

            // Check if exists related entities.
            CheckRelatedEntities(timeEntryView, timeEntryById, InpersonatedUserName, out var relatedMemberByName, out var relatedProjectById);

            // Check Lock TimeEntries: User cannot Create TimeEntry, if enable Lock TimeEntry in Project settings.
            CheckLockTimeEntryByProjectSettings(timeEntryView.Date, relatedProjectById);

            #region Delete TimeEntry from DB.

            try
            {
                Uow.TimeEntryRepository.Delete(timeEntryById.Id);
                Uow.Save();
            }
            catch (Exception e)
            {
                throw new CoralTimeDangerException("An error occurred while deleting the TimeEntry", e);
            }

            #endregion
        }
Ejemplo n.º 16
0
        public void Update(SampleDTO sampleDTO)
        {
            // Validation
            if (sampleDTO.Name.Length > 25)
            {
                throw new ValidationException($"The length of {nameof(sampleDTO.Name)} must be less then 25"
                                              , nameof(sampleDTO.Name));
            }
            if (sampleDTO.Description.Length > 255)
            {
                throw new ValidationException($"The length of {nameof(sampleDTO.Description)} must be less then 25"
                                              , nameof(sampleDTO.Description));
            }

            if (sampleDTO == null)
            {
                throw new ArgumentNullException($"null object({nameof(sampleDTO)}) can not be passed to Update method of base service");
            }

            var sample = SampleMapper.Map <SampleDTO, Sample>(sampleDTO);

            Uow.Samples.Update(sample);

            Uow.Save();
        }
Ejemplo n.º 17
0
        public TimeEntryView Update(TimeEntryView timeEntryView)
        {
            var timeEntryById = GetRelatedTimeEntryById(timeEntryView.Id);

            // Check if exists related entities.
            CheckRelatedEntities(timeEntryView, timeEntryById, InpersonatedUserName, out var relatedMemberByName, out var relatedProjectById);

            // Check Lock TimeEntries: User cannot Create TimeEntry, if enable Lock TimeEntry in Project settings.
            CheckLockTimeEntryByProjectSettings(timeEntryView.Date, relatedProjectById);

            // Check correct timing values from TimeEntryView.
            CheckCorrectTimingValues(timeEntryView.TimeFrom, timeEntryView.TimeTo, timeEntryView.Time);

            // Check that total time per day is not grater than 24 hours.
            CheckTotalTimeAtDay(relatedMemberByName, timeEntryView, timeEntryById);

            // Update values for TimeEntry.
            UpdateValuesForTimeEntry(timeEntryById, timeEntryView);

            #region Update TimeEntry in DB.

            try
            {
                Uow.TimeEntryRepository.Update(timeEntryById);
                Uow.Save();

                return(timeEntryById.GetViewTimeEntry(InpersonatedUserName, Mapper));
            }
            catch (Exception e)
            {
                throw new CoralTimeDangerException("An error occurred while updating TimeEntry", e);
            }

            #endregion
        }
Ejemplo n.º 18
0
        public async Task <bool> Adicionar(Fornecedor entidade)
        {
            try
            {
                if (!ExecutarValidacao(new FornecedorValidacao(), entidade))
                {
                    return(false);
                }

                if (FornecedorRepositorio.Buscar(f => f.Documento == entidade.Documento, null, true, 0, 0).Result.Item1.Any())
                {
                    Notificar(mensagem: "Já existe um fornecedor com este documento informado");
                    return(false);
                }

                await FornecedorRepositorio.Adicionar(entidade);

                await Uow.Save();
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(true);
        }
Ejemplo n.º 19
0
        public async Task <bool> Atualizar(Fornecedor entidade)
        {
            try
            {
                if (!ExecutarValidacao(new FornecedorValidacao(), entidade))
                {
                    return(false);
                }

                var fornecedorBanco = await FornecedorRepositorio.ObterPorId(entidade.Id);

                fornecedorBanco.Ativo        = entidade.Ativo != fornecedorBanco.Ativo ? entidade.Ativo : fornecedorBanco.Ativo;
                fornecedorBanco.DataCadastro = entidade.DataCadastro != fornecedorBanco.DataCadastro ? entidade.DataCadastro : fornecedorBanco.DataCadastro;
                fornecedorBanco.Documento    = entidade.Documento != fornecedorBanco.Documento ? entidade.Documento : fornecedorBanco.Documento;
                fornecedorBanco.Nome         = entidade.Nome != fornecedorBanco.Nome ? entidade.Nome : fornecedorBanco.Nome;

                await FornecedorRepositorio.Atualizar(fornecedorBanco);

                await Uow.Save();

                return(true);
            }
            catch (Exception ex)
            {
                Notificar("Ocorreu um erro: " + ex.Message);
                return(false);
            }
        }
Ejemplo n.º 20
0
        public IHttpActionResult Post(UserModel user)
        {
            User userTemp = new User();

            if (user != null)
            {
                if (user.Email != null)
                {
                    var userObj = Uow.Repository <User>().FirstOrDefault(t => t.Email == user.Email);
                    if (userObj != null)
                    {
                        return(Ok("Same Email Exists"));
                    }
                }

                var passwordHash = AppUow.PasswordEncryption.Encrypt(user.Password);
                userTemp.Password  = passwordHash.PasswordHash;
                userTemp.Salt      = passwordHash.Salt;
                userTemp.FirstName = user.FirstName;
                userTemp.LastName  = user.LastName;
                userTemp.Email     = user.Email;
                userTemp.Contact   = user.Contact;
                userTemp.Address   = user.Address;
                userTemp.RoleId    = 2;
                userTemp.GenderId  = user.GenderId;
                Uow.Save();
            }
            return(Ok(UserDomain.PostUser(userTemp)));
        }
Ejemplo n.º 21
0
        public void Delete(int id)
        {
            var member = Uow.MemberRepository.LinkedCacheGetByName(InpersonatedUserName);

            if (member == null || !member.User.IsActive)
            {
                throw new CoralTimeEntityNotFoundException($"Member with userName {InpersonatedUserName} not found or is not active");
            }

            var projectRole = Uow.MemberProjectRoleRepository.GetById(id);

            if (projectRole == null)
            {
                throw new CoralTimeEntityNotFoundException($"ProjectRole with id {id} not found");
            }

            var hasAccessAsManager = HasAccessAsManager(member.Id, new MemberProjectRoleView
            {
                ProjectId = projectRole.ProjectId,
                RoleId    = projectRole.RoleId
            });

            if (member.User.IsAdmin || hasAccessAsManager)
            {
                Uow.MemberProjectRoleRepository.Delete(id);
                Uow.Save();
                Uow.MemberProjectRoleRepository.LinkedCacheClear();
                UpdateIsManager(projectRole.MemberId);
            }
            else
            {
                throw new CoralTimeForbiddenException($"Member with id {member.Id} is not allowed to delete projectRole on project with id {projectRole.ProjectId} and role with id {projectRole.RoleId}.");
            }
        }
Ejemplo n.º 22
0
        public void Handle(PersonAddCommand command)
        {
            var data = new Person()
            {
                PersonRefId = command.PersonRefId,
                FirstName   = command.FirstName,
                LastName    = command.LastName,
                DateOfBirth = command.DateOfBirth,
                Address     = command.Address,
                BeltId      = command.BeltId,
                Stripes     = command.Stripes
            };

            _uow.PeopleRepo.Create(data);
            data.RaiseDomainEvent(new PersonAddedEvent(data.PersonRefId, command.FirstName, command.LastName, command.DateOfBirth, command.Address, command.BeltId, command.Stripes));
            _uow.Save();
        }
Ejemplo n.º 23
0
        public IActionResult Create(int Id)
        {
            var deleteHotel = Uow.Repository <Hotel>().Get(Id);

            Uow.Repository <Hotel>().Delete(deleteHotel);
            Uow.Save();
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 24
0
        public async Task <bool> Remover(Endereco endereco)
        {
            await enderecoRepositorio.Remover(endereco);

            await Uow.Save();

            return(true);
        }
Ejemplo n.º 25
0
        public async Task <bool> Adicionar(Endereco endereco)
        {
            await enderecoRepositorio.Adicionar(endereco);

            await Uow.Save();

            return(true);
        }
Ejemplo n.º 26
0
        private async Task <Member> CreateNewUserCommon(MemberView memberView, ApplicationUser newUser, string userRole)
        {
            var userByName = Uow.UserRepository.LinkedCacheGetByName(memberView.UserName);

            if (userByName != null)
            {
                throw new CoralTimeAlreadyExistsException($"User with userName {memberView.UserName} already exist");
            }

            // Identity #1. Create User in db.AspNetUsers.
            var userCreationResult = await _userManager.CreateAsync(newUser, memberView.Password);

            if (!userCreationResult.Succeeded)
            {
                CheckIdentityResultErrors(userCreationResult);
            }

            // Identity #2. Create role for user in db.AspNetUserRoles.
            var memberUser = await _userManager.FindByNameAsync(newUser.UserName);

            var userCreateRoleResult = await _userManager.AddToRoleAsync(memberUser, UserRole);

            if (!userCreateRoleResult.Succeeded)
            {
                CheckIdentityResultErrors(userCreateRoleResult);
            }

            #region Set UserId to new Member. Save to Db. Get Member from Db with related entity User by UserId.

            // 1. Convert MemberView to Member.
            var newMember = Mapper.Map <MemberView, Member>(memberView);

            // 2. Assign UserId to Member (After Save, when you try to get entity from Db, before assign UserId to entity then it has Related Entity User).
            newMember.UserId = memberUser.Id;

            // 3. Save in Db.
            Uow.MemberRepository.Insert(newMember);
            Uow.Save();

            // 4. Clear cache for Members.
            Uow.MemberRepository.LinkedCacheClear();

            // 5. Get From Db -> Cache New Member. (Get entity With new created related entity - User)
            var memberByName = Uow.MemberRepository.LinkedCacheGetByName(memberView.UserName);

            #endregion

            // Identity #3. Create claims. Add Claims for user in AspNetUserClaims.
            var claimsUser       = ClaimsCreator.GetUserClaims(memberUser.UserName, memberView.FullName, memberView.Email, userRole, memberByName.Id);
            var claimsUserResult = await _userManager.AddClaimsAsync(memberUser, claimsUser);

            if (!claimsUserResult.Succeeded)
            {
                CheckIdentityResultErrors(userCreateRoleResult);
            }

            return(memberByName);
        }
Ejemplo n.º 27
0
        public TaskTypeView Update(TaskTypeView taskTypeView)
        {
            IsTaskTypeNameHasChars(taskTypeView.Name);
            IsNameUnique(taskTypeView);

            var taskType = Uow.TaskTypeRepository.GetQueryWithIncludesById(taskTypeView.Id);

            if (taskType == null)
            {
                throw new CoralTimeEntityNotFoundException($"TaskType with id {taskTypeView.Id} not found");
            }

            #region We shouldn't change projectId for Tasks

            if (taskType.ProjectId != taskTypeView.ProjectId)
            {
                taskTypeView.ProjectId = taskType.ProjectId;
            }

            #endregion We shouldn't change projectId for Tasks

            if (taskTypeView.ProjectId != null && !ApplicationUserCurrent.IsAdmin)
            {
                var project = Uow.ProjectRepository.LinkedCacheGetById((int)taskTypeView.ProjectId);
                if (project == null)
                {
                    throw new CoralTimeEntityNotFoundException($"Project with id {taskTypeView.ProjectId} not found");
                }

                var managerRoleId = Uow.ProjectRoleRepository.GetManagerRoleId();

                var memberProjectRole = Uow.MemberProjectRoleRepository.LinkedCacheGetList()
                                        .FirstOrDefault(r => r.MemberId == MemberCurrent.Id && r.ProjectId == project.Id && r.RoleId == managerRoleId);

                if (memberProjectRole == null)
                {
                    throw new CoralTimeForbiddenException("Forbidden");
                }
            }

            if (!taskTypeView.IsActive)
            {
                var timeEntries = Uow.TimeEntryRepository.GetQueryWithIncludes()
                                  .Where(t => t.TaskTypesId == taskType.Id && t.Date.Date == DateTime.Now.Date)
                                  .ToList();

                timeEntries.ForEach(t => t.StopTimer());
            }

            UpdateValuesForTaskType(taskType, taskTypeView);

            Uow.TaskTypeRepository.Update(taskType);
            Uow.Save();
            Uow.TaskTypeRepository.LinkedCacheClear();

            return(Uow.TaskTypeRepository.LinkedCacheGetById(taskType.Id).GetView(Mapper));
        }
Ejemplo n.º 28
0
        // GET: Reservations/Cancel/5
        public ActionResult Cancel(int id)
        {
            var reservation = new Reservation();

            reservation        = Uow.Repository <Reservation>().Get(r => r.ReservationId == id);
            reservation.Status = StatusReservation.Cancelled;
            Uow.Repository <Reservation>().Update(reservation);
            Uow.Save();
            return(RedirectToAction(nameof(Index)));
        }
Ejemplo n.º 29
0
        public void Delete(int?id)
        {
            if (!id.HasValue)
            {
                throw new ValidationException("The Sample's id value is not set", String.Empty);
            }

            Uow.Samples.Delete(id.Value);
            Uow.Save();
        }
Ejemplo n.º 30
0
        public TaskType Create(TaskView taskTypeData, string userName)
        {
            if (!IsNameUnique(taskTypeData.Name, taskTypeData.ProjectId))
            {
                throw new CoralTimeAlreadyExistsException($"Task with name {taskTypeData.Name} already exist");
            }

            var user = Uow.UserRepository.LinkedCacheGetByName(userName);

            if (taskTypeData.ProjectId != null && !user.IsAdmin)
            {
                var project = Uow.ProjectRepository.GetById(taskTypeData.ProjectId);

                if (project == null)
                {
                    throw new CoralTimeEntityNotFoundException($"Project with id {taskTypeData.ProjectId} not found");
                }

                var member = Uow.MemberRepository.LinkedCacheGetByName(userName);

                if (member == null)
                {
                    throw new CoralTimeEntityNotFoundException($"Member with userName {userName} not found");
                }

                var managerRoleId = Uow.ProjectRoleRepository.GetManagerRoleId();

                var memberProjectRole = Uow.MemberProjectRoleRepository.GetQueryWithIncludes()
                                        .FirstOrDefault(r => r.MemberId == member.Id && r.ProjectId == project.Id && r.RoleId == managerRoleId);

                if (memberProjectRole == null)
                {
                    throw new CoralTimeForbiddenException("Forbidden");
                }
            }

            var timeEntryType = Mapper.Map <TaskView, TaskType>(taskTypeData);

            timeEntryType.IsActive = true;

            try
            {
                Uow.TaskTypeRepository.Insert(timeEntryType);
                Uow.Save();
                ClearCache();
            }
            catch (Exception e)
            {
                throw new CoralTimeDangerException("An error occurred while creating timeEntryType", e);
            }

            var result = Uow.TaskTypeRepository.GetById(timeEntryType.Id);

            return(result);
        }