Exemplo n.º 1
0
            public async Task <BaseResponses <IEnumerable <OfferedProjectDTO> > > Handle(OfferedProjectListRequest request, CancellationToken cancellationToken)
            {
                BaseResponses <IEnumerable <OfferedProjectDTO> > response = null;

                using (var trx = unitOfWork.BeginTransaction())
                {
                    try
                    {
                        var user = await userManager.FindByNameAsync(request.UserName);

                        var projects = await offerProjectService.GetOfferedProjectByOwnerId(user.Id);

                        var offeredProjectDTO = new List <OfferedProjectDTO>();

                        foreach (var item in projects)
                        {
                            var freelancer = await userManager.FindByIdAsync(item.FreelancerId.ToString());

                            var country = await countryService.GetById(freelancer.CountryId.ToString());

                            offeredProjectDTO.Add(new OfferedProjectDTO {
                                OfferedProject = item, FreeLancer = freelancer, FreeLancerCountry = country
                            });
                        }
                        unitOfWork.SaveChanges();
                        response = new BaseResponses <IEnumerable <OfferedProjectDTO> >(offeredProjectDTO);
                    }
                    catch (RestException ex)
                    {
                        trx.Rollback();
                        response = new BaseResponses <IEnumerable <OfferedProjectDTO> >(ex.StatusCode, ex.Message);
                    }
                    return(response);
                }
            }
Exemplo n.º 2
0
            public async Task <BaseResponses <OfferedProject> > Handle(OfferProjectRequest request, CancellationToken cancellationToken)
            {
                BaseResponses <OfferedProject> response = null;

                using (var trx = unitOfWork.BeginTransaction())
                {
                    try
                    {
                        var user = await userManager.FindByNameAsync(request.OwnerUserName);

                        request.OwnerId = user.Id;
                        var project = mapper.Map <OfferedProject>(request);
                        var result  = await offerProjectService.Add(project);

                        response = new BaseResponses <OfferedProject>(result);
                        unitOfWork.SaveChanges();
                    }
                    catch (RestException ex)
                    {
                        trx.Rollback();
                        response = new BaseResponses <OfferedProject>(ex.StatusCode, ex.Message);
                    }
                    return(response);
                }
            }
Exemplo n.º 3
0
            public async Task <BaseResponses <ConfirmedBid> > Handle(ConfirmedBidRequest request, CancellationToken cancellationToken)
            {
                BaseResponses <ConfirmedBid> responce = null;

                using (var trx = unitOfWork.BeginTransaction())
                {
                    try
                    {
                        var confirmedBid = mapper.Map <ConfirmedBid>(request.ConfirmedBid);
                        var result       = await confirmedBidService.Add(confirmedBid);

                        // bid requesti update elemek lazimdir
                        var bidRequest = await bidRequestService.GetById(request.ConfirmedBid.BidId);

                        var project = await projectService.GetById(request.ProjectId);

                        bidRequest.IsConfirmed = true;
                        project.Status         = Statuses.Confirmed.ToString();
                        var bidUpdateResult = await bidRequestService.Update(bidRequest);

                        var projectUpateResult = await projectService.Update(project);

                        unitOfWork.SaveChanges();

                        responce = new BaseResponses <ConfirmedBid>(confirmedBid);
                    }
                    catch (RestException ex)
                    {
                        trx.Rollback();
                        responce = new BaseResponses <ConfirmedBid>(ex.StatusCode, ex.Message);
                    }

                    return(responce);
                }
            }
Exemplo n.º 4
0
            public async Task <BaseResponses <string> > Handle(DeleteBidRequest request, CancellationToken cancellationToken)
            {
                BaseResponses <string> responce = null;

                using (var trx = unitOfWork.BeginTransaction())
                {
                    try
                    {
                        var bidrequest = await bidRequestService.GetById(request.BidRequestId);

                        if (!bidrequest.IsConfirmed)
                        {
                            var result = await bidRequestService.Delete(request.BidRequestId);

                            unitOfWork.SaveChanges();
                            responce = new BaseResponses <string>(result);
                        }
                    }
                    catch (Exception ex)
                    {
                        trx.Rollback();
                        responce = new BaseResponses <string>(System.Net.HttpStatusCode.BadRequest, ex.Message);
                    }
                    return(responce);
                }
            }
Exemplo n.º 5
0
            public async Task <BaseResponses <IEnumerable <FreelancerListDTO> > > Handle(FreelancerListRequest request, CancellationToken cancellationToken)
            {
                BaseResponses <IEnumerable <FreelancerListDTO> > response = null;

                using (var trx = unitOfWork.BeginTransaction())
                {
                    try
                    {
                        string roleName = "Freelancer";
                        var    users    = await userManager.GetUsersInRoleAsync(roleName);

                        var freelancerDTO = new List <FreelancerListDTO>();
                        foreach (var item in users)
                        {
                            var skill = await skillService.GetFreelancerSkill(item.Id);

                            var country = await countryService.GetById(item.CountryId.ToString());

                            freelancerDTO.Add(new FreelancerListDTO {
                                User = item, FreelancerSkils = skill, Country = country
                            });
                        }
                        response = new BaseResponses <IEnumerable <FreelancerListDTO> >(freelancerDTO);
                        unitOfWork.SaveChanges();
                    }
                    catch (RestException ex)
                    {
                        trx.Rollback();
                        response = new BaseResponses <IEnumerable <FreelancerListDTO> >(ex.StatusCode, ex.Message);
                    }
                }
                return(response);
            }
Exemplo n.º 6
0
            public async Task <BaseResponses <IEnumerable <ApplicationUsersDTO> > > Handle(UserListRequest request, CancellationToken cancellationToken)
            {
                BaseResponses <IEnumerable <ApplicationUsersDTO> > response = null;

                using (var trx = unitOfWork.BeginTransaction())
                {
                    try
                    {
                        var appUsers = new List <ApplicationUsersDTO>();
                        var users    = await userManager.GetUsersInRoleAsync(request.RoleName);

                        foreach (var item in users)
                        {
                            var user = mapper.Map <ApplicationUsersDTO>(item);
                            appUsers.Add(user);
                        }
                        response = new BaseResponses <IEnumerable <ApplicationUsersDTO> >(appUsers);
                        unitOfWork.SaveChanges();
                    }
                    catch (Exception ex)
                    {
                        response = new BaseResponses <IEnumerable <ApplicationUsersDTO> >(System.Net.HttpStatusCode.BadRequest, ex.Message);
                        trx.Rollback();
                    }
                }

                return(response);
            }
Exemplo n.º 7
0
            public async Task <BaseResponses <IEnumerable <ProjectDTO> > > Handle(ProjectListRequest request, CancellationToken cancellationToken)
            {
                BaseResponses <IEnumerable <ProjectDTO> > response = null;

                if (!string.IsNullOrEmpty(request.Username))
                {
                    using (var trx = unitOfWork.BeginTransaction())
                    {
                        try
                        {
                            var user = await userManager.FindByNameAsync(request.Username);

                            var projects = await projectService.GetProjectByOwnerId(user.Id);

                            var projectDto = new List <ProjectDTO>();
                            foreach (var item in projects)
                            {
                                var skills = await skillService.GetProjectSkills(item.Id);

                                projectDto.Add(new ProjectDTO {
                                    Project = item, ProjectSkills = skills
                                });
                            }
                            response = new BaseResponses <IEnumerable <ProjectDTO> >(projectDto);
                            unitOfWork.SaveChanges();
                        }
                        catch (RestException ex)
                        {
                            trx.Rollback();
                            response = new BaseResponses <IEnumerable <ProjectDTO> >(ex.StatusCode, ex.Message);
                        }
                    }
                }
                return(response);
            }
Exemplo n.º 8
0
            public async Task <BaseResponses <ApplicationUser> > Handle(CreateAdminRequest request, CancellationToken cancellationToken)
            {
                BaseResponses <ApplicationUser> response = null;

                using (var trx = unitOfWork.BeginTransaction())
                {
                    try
                    {
                        request.UserName = request.Email;
                        request.Role     = "Admin";
                        var user   = mapper.Map <ApplicationUser>(request);
                        var result = await userManager.CreateAsync(user, user.PasswordHash);

                        if (result.Succeeded)
                        {
                            var role = await roleManager.FindByNameAsync(request.Role);

                            if (role == null)
                            {
                                var roleResult = await roleManager.CreateAsync(new ApplicationRole { Name = request.Role });
                            }
                            var tempUser = await userManager.FindByEmailAsync(request.Email);

                            var finalResult = await userManager.AddToRoleAsync(tempUser, request.Role);

                            unitOfWork.SaveChanges();

                            response = new BaseResponses <ApplicationUser>(user, result.Succeeded, "");
                        }
                        List <ValidationError> errors = null;
                        if (!result.Succeeded)
                        {
                            errors = new List <ValidationError>();
                            foreach (var item in result.Errors)
                            {
                                errors.Add(new ValidationError(item.Code, item.Description));
                            }

                            response = new BaseResponses <ApplicationUser>(user, result.Succeeded)
                            {
                                ValidationErrors = errors
                            };
                        }
                    }
                    catch (RestException ex)
                    {
                        trx.Rollback();
                        response = new BaseResponses <ApplicationUser>(ex.StatusCode, ex.Message);
                    }
                    return(response);
                }
            }
Exemplo n.º 9
0
            public async Task <BaseResponses <ProjectBidRequestDTO> > Handle(ProjectCommentRequest request, CancellationToken cancellationToken)
            {
                BaseResponses <ProjectBidRequestDTO> response = null;

                using (var trx = unitOfWork.BeginTransaction())
                {
                    try
                    {
                        if (request.Comment != null)
                        {
                            var user1 = userManager.FindByNameAsync(request.FreekancerName);
                            //ApplicationUser appuser = new ApplicationUser();
                            //appuser = user1.Result;
                            BidRequest bid = new BidRequest();
                            bid.BidPrice     = request.BidPrice;
                            bid.Comment      = request.Comment;
                            bid.ProjectId    = request.ProjectID.ToString();
                            bid.FreelancerId = user1.Result.Id;
                            await bidRequestService.Add(bid);
                        }
                        var project = await projectService.GetById(request.ProjectID.ToString());

                        var bidRequests = await bidRequestService.GetBidRequestsByProjectId(request.ProjectID.ToString());

                        var projectDetailsDTO = new ProjectBidRequestDTO()
                        {
                            Project = project
                        };
                        foreach (var item in bidRequests)
                        {
                            var user = await userManager.FindByIdAsync(item.FreelancerId.ToString());

                            projectDetailsDTO.BidRequests.Add(
                                new BidRequestDTO {
                                BidRequest = item,
                                FreeLancer = user
                            });
                        }
                        unitOfWork.SaveChanges();
                        response = new BaseResponses <ProjectBidRequestDTO>(projectDetailsDTO);
                    }
                    catch (RestException ex)
                    {
                        trx.Rollback();
                        response = new BaseResponses <ProjectBidRequestDTO>(ex.StatusCode, ex.Message);
                    }
                    return(response);
                }
            }
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            if (!context.ModelState.IsValid)
            {
                BaseResponses <string> responses = new BaseResponses <string>(System.Net.HttpStatusCode.BadRequest);
                var modelErrors = context.ModelState.Keys
                                  .SelectMany(key =>
                                              context.ModelState[key].Errors.Select(x => new ValidationError(key, x.ErrorMessage)));

                modelErrors.ToList().ForEach(x =>
                {
                    responses.ValidationErrors.AddRange(modelErrors);
                });

                context.Result = new BadRequestObjectResult(responses);
            }
        }
Exemplo n.º 11
0
            public async Task <BaseResponses <List <OwnerModel> > > Handle(GetAllProjectRequest request, CancellationToken cancellationToken)
            {
                BaseResponses <List <OwnerModel> > responses = null;

                using (var trx = unitOfWork.BeginTransaction())
                {
                    try
                    {
                        var data = await AddressService.GetAll();

                        responses = new BaseResponses <List <OwnerModel> >(data.ToList());
                    }
                    catch (RestException ex)
                    {
                        responses = new BaseResponses <List <OwnerModel> >(ex.StatusCode, ex.Message);
                    }
                }

                return(responses);
            }
Exemplo n.º 12
0
            public async Task <BaseResponses <IEnumerable <Skill> > > Handle(SkillListRequest request, CancellationToken cancellationToken)
            {
                BaseResponses <IEnumerable <Skill> > response = null;



                using (var trx = unitOfWork.BeginTransaction())
                {
                    try
                    {
                        var result = await skillService.GetAll();

                        response = new BaseResponses <IEnumerable <Skill> >(result);
                    }
                    catch (RestException ex)
                    {
                        response = new BaseResponses <IEnumerable <Skill> >(ex.StatusCode, ex.Message);
                    }
                    return(response);
                }
            }
Exemplo n.º 13
0
            public async Task <BaseResponses <string> > Handle(DeleteOwnerRequest request, CancellationToken cancellationToken)
            {
                BaseResponses <string> responses = null;

                using (var trx = unitOfWork.BeginTransaction())
                {
                    try
                    {
                        var data = await AddressService.Delete(request.Id);

                        unitOfWork.SaveChanges();
                        responses = new BaseResponses <string>("OK");
                    }
                    catch (RestException ex)
                    {
                        trx.Rollback();
                        responses = new BaseResponses <string>(ex.StatusCode, ex.Message);
                    }
                }
                return(responses);
            }
Exemplo n.º 14
0
            public async Task <BaseResponses <Project> > Handle(GetProjectSelectIDRequest request, CancellationToken cancellationToken)
            {
                BaseResponses <Project> response = null;

                using (var trx = unitOfWork.BeginTransaction())
                {
                    try
                    {
                        var data = await projectService.GetById(request.ID.ToString());

                        unitOfWork.SaveChanges();
                        response = new BaseResponses <Project>(data);
                    }
                    catch (RestException ex)
                    {
                        trx.Rollback();
                        response = new BaseResponses <Project>(ex.StatusCode, ex.Message);
                    }

                    return(response);
                }
            }
Exemplo n.º 15
0
            public async Task <BaseResponses <AddPost> > Handle(CreatePostRequest request, CancellationToken cancellationToken)
            {
                BaseResponses <AddPost> responses = null;

                using (var trx = unitOfWork.BeginTransaction())
                {
                    try
                    {
                        var mapData = mapper.Map <AddPost>(request);
                        var data    = await addressService.Add(mapData);

                        responses = new BaseResponses <AddPost>(data);
                        unitOfWork.SaveChanges();
                    }
                    catch (RestException ex)
                    {
                        trx.Rollback();
                        responses = new BaseResponses <AddPost>(ex.StatusCode, ex.Message);
                    }
                    return(responses);
                }
            }
Exemplo n.º 16
0
            public async Task <BaseResponses <IEnumerable <ProjectManagementDTOcs> > > Handle(AllProjectRequest request, CancellationToken cancellationToken)
            {
                BaseResponses <IEnumerable <ProjectManagementDTOcs> > response = null;

                using (var trx = unitOfWork.BeginTransaction())
                {
                    try
                    {
                        var projects = await projectService.GetAll();

                        var projectDtos = new List <ProjectManagementDTOcs>();
                        foreach (var item in projects)
                        {
                            var user = await userManager.FindByIdAsync(item.OwnerId.ToString());

                            var data = new ProjectManagementDTOcs()
                            {
                                CreatedDate      = item.CreateDate,
                                MaxPrice         = item.MaxPrice,
                                MinPrice         = item.MinPrice,
                                ProjectName      = item.Title,
                                ProjectOwnerName = $"{user.Name} {user.SurName}",
                                ProjectId        = item.Id.ToString(),
                                Status           = item.Status
                            };
                            projectDtos.Add(data);
                        }
                        unitOfWork.SaveChanges();
                        response = new BaseResponses <IEnumerable <ProjectManagementDTOcs> >(projectDtos);
                    }
                    catch (RestException ex)
                    {
                        trx.Rollback();
                        response = new BaseResponses <IEnumerable <ProjectManagementDTOcs> >(ex.StatusCode, ex.Message);
                    }
                    return(response);
                }
            }
Exemplo n.º 17
0
            public async Task <BaseResponses <Project> > Handle(CreateProjectRequest request, CancellationToken cancellationToken)
            {
                BaseResponses <Project> response = null;

                using (var trx = unitOfWork.BeginTransaction())
                {
                    try
                    {
                        var user = await userManager.FindByNameAsync(request.OwnerName);

                        request.OwnerId = user.Id;
                        var project = mapper.Map <Project>(request);
                        var result  = await projectService.Add(project);

                        var projectSkills = new List <ProjectSkill>();
                        foreach (var item in request.Skills)
                        {
                            if (item.IsChecked)
                            {
                                projectSkills.Add(new ProjectSkill {
                                    ProjectId = result.Id, SkillId = item.Id
                                });
                            }
                        }
                        await projectService.AddSkillsToProject(projectSkills);

                        unitOfWork.SaveChanges();
                        response = new BaseResponses <Project>(result);
                    }
                    catch (RestException ex)
                    {
                        trx.Rollback();
                        response = new BaseResponses <Project>(ex.StatusCode, ex.Message);
                    }

                    return(response);
                }
            }
Exemplo n.º 18
0
        public static IActionResult Response <T>(BaseResponses <T> entity)
        {
            if (!entity.Success && entity.Errors.Length > 0 && entity.Errors.Contains("Unauthorize"))
            {
                return(new UnauthorizedResult());
            }

            else if (!entity.Success && entity.Errors.Length > 0 && entity.StatusCode == System.Net.HttpStatusCode.NotFound)
            {
                return(new NotFoundObjectResult(entity));
            }

            else if (!entity.Success && entity.Errors.Length > 0 && entity.StatusCode == HttpStatusCode.BadRequest)
            {
                return(new BadRequestObjectResult(entity));
            }

            else if (!entity.Success && entity.Errors.Length > 0)
            {
                return(new NoContentResult());
            }
            return(new JsonResult(entity));
        }
Exemplo n.º 19
0
            public async Task <BaseResponses <IdentityResult> > Handle(DeletUserRequest request, CancellationToken cancellationToken)
            {
                BaseResponses <IdentityResult> responce = null;

                using (var trx = unitOfWork.BeginTransaction())
                {
                    try
                    {
                        var user = await userManager.FindByEmailAsync(request.Email);

                        var result = await userManager.DeleteAsync(user);

                        unitOfWork.SaveChanges();
                        responce = new BaseResponses <IdentityResult>(result);
                    }
                    catch (Exception ex)
                    {
                        trx.Rollback();
                        responce = new BaseResponses <IdentityResult>(System.Net.HttpStatusCode.BadRequest, ex.Message);
                    }
                    return(responce);
                }
            }
Exemplo n.º 20
0
            public async Task <BaseResponses <ProjectDetailsDTO> > Handle(ProjectDetailsRequest request, CancellationToken cancellationToken)
            {
                BaseResponses <ProjectDetailsDTO> response = null;

                using (var trx = unitOfWork.BeginTransaction())
                {
                    try
                    {
                        var project = await projectService.GetById(request.ProjectId);

                        var bidRequests = await bidRequestService.GetBidRequestsByProjectId(request.ProjectId);

                        var projectDetailsDTO = new ProjectDetailsDTO()
                        {
                            Project = project
                        };
                        foreach (var item in bidRequests)
                        {
                            var user = await userManager.FindByIdAsync(item.FreelancerId.ToString());

                            var country = await countryService.GetById(user.CountryId.ToString());

                            projectDetailsDTO.BidRequests.Add(new BidRequestDTO {
                                BidRequest = item, FreeLancer = user, Country = country
                            });
                        }
                        unitOfWork.SaveChanges();
                        response = new BaseResponses <ProjectDetailsDTO>(projectDetailsDTO);
                    }
                    catch (RestException ex)
                    {
                        trx.Rollback();
                        response = new BaseResponses <ProjectDetailsDTO>(ex.StatusCode, ex.Message);
                    }
                    return(response);
                }
            }