示例#1
0
        // GET: Claims/Create
        public async Task <IActionResult> Create(Guid productId, Guid clientId, Guid policyId, int riskId, Guid riskitemId)
        {
            Models.Claim claim = new Models.Claim
            {
                RiskID       = riskId,
                RiskItemID   = riskitemId,
                RegisterDate = DateTime.Now,
                IncidentDate = DateTime.Now,
                ReportDate   = DateTime.Now
            };

            ClaimViewModel viewModel = new ClaimViewModel
            {
                ProductID      = productId,
                ClientID       = clientId,
                PolicyID       = policyId,
                Claim          = claim,
                ClaimClassList = new SelectList(await _context.ClaimClasses.AsNoTracking().ToListAsync(), "ID", "Name",
                                                await _context.ClaimClasses.FirstOrDefaultAsync()),
                ClaimStatusList = new SelectList(await _context.ClaimStatuses.AsNoTracking().ToListAsync(), "ID", "Name",
                                                 await _context.ClaimStatuses.FirstOrDefaultAsync()),
                IncidentList = new SelectList(await _context.Incidents
                                              .Where(i => i.RiskIncidents.Any(r => r.RiskID == riskId))
                                              .AsNoTracking().ToListAsync(),
                                              "ID", "Name", await _context.Incidents.FirstOrDefaultAsync()),
                RegionList = new SelectList(await _context.Regions.AsNoTracking().ToListAsync(), "ID", "Name",
                                            await _context.Regions.FirstOrDefaultAsync()),
                ProvinceList = new SelectList(await _context.Provinces.OrderBy(n => n.Name).AsNoTracking().ToListAsync(), "ID", "Name",
                                              await _context.Provinces.FirstOrDefaultAsync()),
                CountryList = new SelectList(await _context.Countries.OrderBy(n => n.Name).AsNoTracking().ToListAsync(), "ID", "Name",
                                             await _context.Countries.FirstOrDefaultAsync())
            };

            return(View(viewModel));
        }
        public async Task <bool> InsertAsync(AddClaimParameter claim)
        {
            if (claim == null)
            {
                throw new ArgumentNullException(nameof(claim));
            }

            using (var transaction = _context.Database.BeginTransaction())
            {
                try
                {
                    var newClaim = new Models.Claim
                    {
                        Code           = claim.Code,
                        IsIdentifier   = false, //claim.IsIdentifier,
                        CreateDateTime = DateTime.UtcNow,
                        UpdateDateTime = DateTime.UtcNow
                    };

                    _context.Claims.Add(newClaim);
                    await _context.SaveChangesAsync().ConfigureAwait(false);

                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    _managerEventSource.Failure(ex);
                    transaction.Rollback();
                    return(false);
                }
            }

            return(true);
        }
示例#3
0
        public Task AddClaimAsync(ApplicationUser user, System.Security.Claims.Claim claim)
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }
            if (claim == null)
            {
                throw new ArgumentNullException("claim");
            }

            var u = _unitOfWork.UserRepository.FindById(user.Id);

            if (u == null)
            {
                throw new ArgumentException("ApplicationUser does not correspond to a User entity.", "user");
            }

            var c = new Models.Claim
            {
                ClaimType  = claim.Type,
                ClaimValue = claim.Value,
                User       = u
            };

            u.Claims.Add(c);

            _unitOfWork.UserRepository.Update(u);
            return(_unitOfWork.CommitAsync());
        }
示例#4
0
 public async Task <IActionResult> Edit(ClaimViewModel viewModel)
 {
     if (ModelState.IsValid)
     {
         try
         {
             Models.Claim claim = new Models.Claim();
             claim = viewModel.Claim;
             _context.Update(claim);
             await _context.SaveChangesAsync();
         }
         catch (DbUpdateConcurrencyException)
         {
             if (!ClaimExists(viewModel.Claim.ClaimNumber))
             {
                 return(NotFound());
             }
             else
             {
                 throw;
             }
         }
         return(RedirectToAction("Index", new { policyId = viewModel.Claim.PolicyID }));
     }
     viewModel.ClaimClassList  = new SelectList(_context.ClaimClasses, "ID", "Name", viewModel.Claim.ClaimClassID);
     viewModel.ClaimStatusList = new SelectList(_context.ClaimStatuses, "ID", "Name", viewModel.Claim.ClaimStatusID);
     viewModel.IncidentList    = new SelectList(_context.Incidents, "ID", "Name", viewModel.Claim.IncidentID);
     viewModel.RegionList      = new SelectList(_context.Regions, "ID", "Name", viewModel.Claim.RegionID);
     return(View(viewModel));
 }
        public async Task <bool> InsertAsync(Domains.Scope scope)
        {
            using (var transaction = _context.Database.BeginTransaction())
            {
                try
                {
                    var record = new Models.Scope
                    {
                        Name                 = scope.Name,
                        Description          = scope.Description,
                        IsDisplayedInConsent = scope.IsDisplayedInConsent,
                        IsExposed            = scope.IsExposed,
                        IsOpenIdScope        = scope.IsOpenIdScope,
                        Type                 = (Models.ScopeType)scope.Type,
                        ScopeClaims          = new List <Models.ScopeClaim>(),
                        CreateDateTime       = DateTime.UtcNow,
                        UpdateDateTime       = DateTime.UtcNow
                    };

                    if (scope.Claims != null &&
                        scope.Claims.Any())
                    {
                        foreach (var type in scope.Claims)
                        {
                            var rec = _context.Claims.FirstOrDefault(c => c.Code == type);
                            if (rec == null)
                            {
                                rec = new Models.Claim {
                                    Code = type
                                };
                                _context.Claims.Add(rec);
                            }

                            record.ScopeClaims.Add(new Models.ScopeClaim {
                                Claim = rec
                            });
                        }
                    }

                    _context.Scopes.Add(record);
                    await _context.SaveChangesAsync().ConfigureAwait(false);

                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    _managerEventSource.Failure(ex);
                    transaction.Rollback();
                    return(false);
                }
            }

            return(true);
        }
示例#6
0
        public async Task <IActionResult> New(Models.Claim claim)
        {
            if (!ModelState.IsValid)
            {
                return(View(claim));
            }

            claim.ClaimValue = claim.ClaimValue.ToString();

            _context.Claims.Add(claim);
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
示例#7
0
        public async Task <IActionResult> Create(ClaimViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                //  Check if Claim Series has been set
                int claimPrefix = GetClaimPrefix(viewModel.PolicyID, viewModel.Claim.RiskID);
                if (claimPrefix > 0)
                {
                    //Random rnd = new Random();
                    Models.Claim claim  = viewModel.Claim;
                    var          riskId = viewModel.Claim.RiskID;
                    claim.ClaimNumber              = GetClaimNumber(claimPrefix);
                    claim.PolicyID                 = viewModel.PolicyID;
                    claim.ReserveInsuredRevised    = claim.ReserveInsured;
                    claim.ReserveThirdPartyRevised = claim.ReserveThirdParty;
                    _context.Add(claim);
                    await _context.SaveChangesAsync();

                    var claimNumber = claim.ClaimNumber;
                    var myParams    = new object[] { claimPrefix, claimNumber };

                    await _context.Database.ExecuteSqlCommandAsync(
                        "INSERT INTO ClaimNumberGenerator(ClaimPrefix, ClaimNumber) " +
                        "Values ({0}, {1})",
                        parameters : myParams);

                    Guid currentUserId = Guid.Parse(User.FindFirstValue(ClaimTypes.NameIdentifier));

                    var riskclaimdocuments = _context.RiskClaimDocuments.Where(r => r.RiskID == riskId);

                    if (riskclaimdocuments.Count() > 0)
                    {
                        foreach (var r in riskclaimdocuments)
                        {
                            var claimParams = new object[] { Guid.NewGuid(), claim.ClaimNumber, r.ClaimDocumentID, null, DateTime.Now,
                                     currentUserId, null, null };

                            await _context.Database.ExecuteSqlCommandAsync(
                                "INSERT INTO ClaimDocumentSubmit(ID, ClaimNumber, ClaimDocumentID, SubmitDate, " +
                                "DateAdded, AddedBy, DateModified, ModifiedBy) " +
                                "Values ({0}, {1}, {2}, {3}, {4}, {5}, {6}, {7})",
                                parameters : claimParams);
                        }
                    }
                    return(RedirectToAction("Index", new {
                        productId = viewModel.ProductID, clientId = viewModel.ClientID, policyid = viewModel.PolicyID
                    }));
                }
                else
                {
                    ViewData["ErrorMessage"]  = "Claim Number series not set";
                    viewModel.ClaimClassList  = new SelectList(await _context.ClaimClasses.AsNoTracking().ToListAsync(), "ID", "Name", viewModel.Claim.ClaimClassID);
                    viewModel.ClaimStatusList = new SelectList(await _context.ClaimStatuses.AsNoTracking().ToListAsync(), "ID", "Name", viewModel.Claim.ClaimStatusID);
                    viewModel.IncidentList    = new SelectList(await _context.Incidents
                                                               .Where(i => i.RiskIncidents.Any(r => r.RiskID == viewModel.Claim.RiskID))
                                                               .AsNoTracking().ToListAsync(),
                                                               "ID", "Name", viewModel.Claim.IncidentID);
                    viewModel.RegionList = new SelectList(await _context.Regions.AsNoTracking().ToListAsync(), "ID", "Name", viewModel.Claim.RegionID);
                    return(View(viewModel));
                }
            }
            viewModel.ClaimClassList  = new SelectList(await _context.ClaimClasses.AsNoTracking().ToListAsync(), "ID", "Name", viewModel.Claim.ClaimClassID);
            viewModel.ClaimStatusList = new SelectList(await _context.ClaimStatuses.AsNoTracking().ToListAsync(), "ID", "Name", viewModel.Claim.ClaimStatusID);
            viewModel.IncidentList    = new SelectList(await _context.Incidents
                                                       .Where(i => i.RiskIncidents.Any(r => r.RiskID == viewModel.Claim.RiskID))
                                                       .AsNoTracking().ToListAsync(),
                                                       "ID", "Name", viewModel.Claim.IncidentID);
            viewModel.RegionList = new SelectList(await _context.Regions.AsNoTracking().ToListAsync(), "ID", "Name", viewModel.Claim.RegionID);
            return(View(viewModel));
        }
示例#8
0
        private IEnumerable <Models.Claim> GetClaims()
        {
            if (importedData != null && importedData.Any())
            {
                var claimTable = importedData.FirstOrDefault(o => o.TableName.Equals(Constants.Claim));

                var claims = new List <Models.Claim>();

                if (claimTable != null)
                {
                    foreach (DataRow row in claimTable.Rows)
                    {
                        try
                        {
                            var claim = new Models.Claim
                            {
                                KeyInternSchadenummer  = row["KeyInternSchadenummer"].ToString(),
                                BackgroundNarrative    = row["BackgroundNarrative"].ToString(),
                                CatastropheCode        = row["CatastropheCode"].ToString(),
                                CatastropheDescription = row["CatastropheDescription"].ToString(),
                                ClaimCode             = row["ClaimCode"].ToString(),
                                ClaimCountry          = row["ClaimCountry"].ToString(),
                                ClaimDeniedIndicator  = row["ClaimDeniedIndicator"].ToString(),
                                ClaimDescription      = row["ClaimDescription"].ToString(),
                                ClaimDiary            = row["ClaimDiary"].ToString(),
                                ClaimEventCode        = row["ClaimEventCode"].ToString(),
                                ClaimEventDescription = row["ClaimEventDescription"].ToString(),
                                ClaimHandler          = row["ClaimHandler"].ToString(),
                                ClaimHandlerCode      = row["ClaimHandlerCode"].ToString(),
                                ClaimInsured          = row["ClaimInsured"].ToString(),
                                ClaimLastModified     = row["ClaimLastModified"].ToString(),
                                ClaimLeadIndicator    =
                                    (ClaimLeadIndicator)
                                    Enum.Parse(typeof(ClaimLeadIndicator), row["ClaimLeadIndicator"].ToString()),
                                ClaimLocationState              = row["ClaimLocationState"].ToString(),
                                ClaimOpenDate                   = row.ConvertToLong("ClaimOpenDate", Logger),
                                ClaimReference                  = row["ClaimReference"].ToString(),
                                ClaimReportDate                 = row.ConvertToLong("ClaimReportDate", Logger),
                                ClaimStatus                     = row["ClaimStatus"].ToString(),
                                ClaimYearOfAccount              = row.ConvertToLong("ClaimYearOfAccount", Logger),
                                CloseDate                       = row.ConvertToLong("CloseDate", Logger),
                                CoverageNarrative               = row["CoverageNarrative"].ToString(),
                                CoverholderWithClaimsAuthority  = row["CoverholderWithClaimsAuthority"].ToString(),
                                DateOfDeclinature               = row.ConvertToLong("DateOfDeclinature", Logger),
                                DateOfLoss                      = row.ConvertToLong("DateOfLoss", Logger),
                                GeographicalOriginOfTheClaim    = row["GeographicalOriginOfTheClaim"].ToString(),
                                LineageReference                = row["LineageReference"].ToString(),
                                LitigationCode                  = row["LitigationCode"].ToString(),
                                LitigationDescription           = row["LitigationDescription"].ToString(),
                                MaximumPotentialLoss            = row["MaximumPotentialLoss"].ToString(),
                                MaximumPotentialLossCurrency    = row["MaximumPotentialLossCurrency"].ToString(),
                                MaximumPotentialLossPercentage  = row["MaximumPotentialLossPercentage"].ToString(),
                                OriginalCurrencyCode            = row["OriginalCurrencyCode"].ToString(),
                                PreviousClaimReference          = row["PreviousClaimReference"].ToString(),
                                PreviousSourceSystem            = row["PreviousSourceSystem"].ToString(),
                                PreviousSourceSystemDescription = row["PreviousSourceSystemDescription"].ToString(),
                                ReasonDeclined                  = row["ReasonDeclined"].ToString(),
                                ReserveNarrative                = row["ReserveNarrative"].ToString(),
                                ServiceProviderReference        = row["ServiceProviderReference"].ToString(),
                                SettlementCurrencyCode          = row["SettlementCurrencyCode"].ToString(),
                                SubrogationSalvageIndicator     = row["SubrogationSalvageIndicator"].ToString(),
                                TPAHandleIndicator              = row["TPAHandleIndicator"].ToString(),
                                TacticsNarrative                = row["TacticsNarrative"].ToString(),
                                TriageCode                      = row["TriageCode"].ToString(),
                                XCSClaimCode                    = row["XCSClaimCode"].ToString(),
                                XCSClaimRef                     = row["XCSClaimRef"].ToString(),
                                Policy   = GetPolicyByClaimNumber(row["KeyInternSchadenummer"].ToString()),
                                Claimant = GetClaimantsByClaimNumber(row["KeyInternSchadenummer"].ToString()).ToArray()
                            };
                            claims.Add(claim);
                        }
                        catch (Exception ex)
                        {
                            Logger.Log(LogLevel.Error, ex,
                                       $"While importing EDF claim  Claimnumber - {row["KeyInternSchadenummer"]} : ");
                        }
                    }
                }
                if (claims.Any())
                {
                    return(claims);
                }
            }
            return(Enumerable.Empty <Models.Claim>());
        }
示例#9
0
        public async Task <bool> UpdateAsync(Domains.Scope scope)
        {
            using (var transaction = _context.Database.BeginTransaction())
            {
                try
                {
                    var connectedScope = await _context.Scopes
                                         .Include(s => s.ScopeClaims)
                                         .FirstOrDefaultAsync(c => c.Name == scope.Name)
                                         .ConfigureAwait(false);

                    connectedScope.Description          = scope.Description;
                    connectedScope.IsOpenIdScope        = scope.IsOpenIdScope;
                    connectedScope.IsDisplayedInConsent = scope.IsDisplayedInConsent;
                    connectedScope.IsExposed            = scope.IsExposed;
                    connectedScope.Type = (Models.ScopeType)scope.Type;
                    var scopesNotToBeRemoved = new List <string>();
                    if (scope.Claims != null &&
                        scope.Claims.Any())
                    {
                        foreach (var type in scope.Claims)
                        {
                            var rec         = _context.Claims.FirstOrDefault(c => c.Code == type);
                            var scopeClaims = connectedScope.ScopeClaims.FirstOrDefault(c => c.ClaimCode == type);
                            if (rec == null)
                            {
                                rec = new Models.Claim {
                                    Code = type
                                };
                                _context.Claims.Add(rec);
                            }

                            if (scopeClaims == null)
                            {
                                connectedScope.ScopeClaims.Add(new Models.ScopeClaim
                                {
                                    ClaimCode = rec.Code,
                                    ScopeName = connectedScope.Name
                                });
                            }

                            scopesNotToBeRemoved.Add(type);
                        }
                    }

                    foreach (var scopeClaim in connectedScope.ScopeClaims.Where(s => !scopesNotToBeRemoved.Any(c => c == s.ClaimCode)).ToList())
                    {
                        _context.ScopeClaims.Remove(scopeClaim);
                    }

                    await _context.SaveChangesAsync().ConfigureAwait(false);

                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    _managerEventSource.Failure(ex);
                    transaction.Rollback();
                    return(false);
                }

                return(true);
            }
        }