Ejemplo n.º 1
0
        public async Task <ApiResponse> AddEditProjectProgram(ProjectProgramModel model, string UserId)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                if (model != null)
                {
                    var existRecord = await _dbContext.ProjectProgram.FirstOrDefaultAsync(x => x.IsDeleted == false && x.ProjectId == model.ProjectId);

                    if (existRecord == null)
                    {
                        ProjectProgram obj = new ProjectProgram();
                        obj.ProjectId   = model.ProjectId;
                        obj.ProgramId   = model.ProgramId;
                        obj.IsDeleted   = false;
                        obj.CreatedById = UserId;
                        obj.CreatedDate = DateTime.UtcNow;
                        await _dbContext.ProjectProgram.AddAsync(obj);

                        await _dbContext.SaveChangesAsync();
                    }
                    else
                    {
                        if (existRecord != null)
                        {
                            existRecord.ProjectId    = model.ProjectId;
                            existRecord.ProgramId    = model.ProgramId;
                            existRecord.IsDeleted    = false;
                            existRecord.ModifiedById = UserId;
                            existRecord.ModifiedDate = DateTime.UtcNow;
                            await _dbContext.SaveChangesAsync();
                        }
                    }
                    response.StatusCode = 200;
                    response.Message    = "Success";
                }
                else
                {
                    throw new Exception("Project Program Not Selected");
                }
            }
            catch (Exception ex)
            {
                response.StatusCode = StaticResource.failStatusCode;
                response.Message    = StaticResource.SomethingWrong + ex.Message;
            }
            return(response);
        }
        public async Task <ApiResponse> Handle(AddProgramDetailCommand request, CancellationToken cancellationToken)
        {
            ApiResponse response = new ApiResponse();

            if (request != null && !string.IsNullOrWhiteSpace(request.ProgramName))
            {
                long LatestCodeId = 0;
                var  code         = string.Empty;
                try
                {
                    ProgramDetail obj = _mapper.Map <AddProgramDetailCommand, ProgramDetail>(request);


                    var data = await _dbContext.ProgramDetail.FirstOrDefaultAsync(x => x.IsDeleted == false && x.ProgramName.Trim().ToLower() == request.ProgramName.Trim().ToLower()); //  Contains(model.ProgramName);


                    if (data == null)
                    {
                        var ProgramDetail = await _dbContext.ProgramDetail
                                            .OrderByDescending(x => x.ProgramId)
                                            .FirstOrDefaultAsync(x => x.IsDeleted == false);

                        if (ProgramDetail == null)
                        {
                            LatestCodeId = 1;
                            code         = ProjectUtility.GenerateCode(LatestCodeId);
                        }
                        else
                        {
                            LatestCodeId = ProgramDetail.ProgramId + 1;
                            code         = ProjectUtility.GenerateCode(LatestCodeId);
                        }
                        obj.ProgramName = request.ProgramName;
                        obj.IsDeleted   = false;
                        obj.ProgramCode = code;
                        obj.CreatedById = request.CreatedById;
                        obj.CreatedDate = DateTime.UtcNow;
                        await _dbContext.ProgramDetail.AddAsync(obj);

                        await _dbContext.SaveChangesAsync();

                        if (obj.ProgramId != 0)
                        {
                            ProjectProgramModel projectProgramModel = new ProjectProgramModel
                            {
                                ProgramId        = obj.ProgramId,
                                ProjectId        = request.ProjectId.Value,
                                ProjectProgramId = 0
                            };

                            var addEditProjectProgram = await _iProjectServices.AddEditProjectProgram(projectProgramModel, request.CreatedById);

                            if (addEditProjectProgram.StatusCode == 200)
                            {
                                response.data.ProgramDetail = obj;
                                response.StatusCode         = StaticResource.successStatusCode;
                                response.Message            = "Success";
                            }
                            else
                            {
                                throw new Exception("Project Program could not be saved");
                            }
                        }
                    }
                    else
                    {
                        response.StatusCode = StaticResource.NameAlreadyExist;
                        response.Message    = StaticResource.ListNameAlreadyExist;
                    }
                }
                catch (Exception ex)
                {
                    response.StatusCode = StaticResource.failStatusCode;
                    response.Message    = StaticResource.SomethingWrong + ex.Message;
                }
            }
            else if (request != null && string.IsNullOrWhiteSpace(request.ProgramName))
            {//check for emptystring
                response.StatusCode = StaticResource.notValid;
                response.Message    = StaticResource.validData;
            }
            else if (request == null)
            {
                response.StatusCode = StaticResource.NameAlreadyExist;
            }

            return(response);
        }