public void SaveDisclaimerType(List <dtoCallSection <dtoCallField> > sections, long idField, DisclaimerType dType) { if (UserContext.isAnonymous) { View.DisplaySessionTimeout(); } else { CallForPaperType type = View.CallType; long idCall = View.IdCall; Int32 idCommunity = View.IdCommunity; CallService.SaveSections(idCall, sections); Boolean saved = CallService.SaveDisclaimerType(idField, dType); if (!saved) { View.DisplayError(EditorErrors.EditingDisclaimerType); } else { if (View.CallType == CallForPaperType.CallForBids) { View.SendUserAction(idCommunity, View.IdCallModule, idCall, ModuleCallForPaper.ActionType.EditDisclaimerType); } else { View.SendUserAction(idCommunity, View.IdCallModule, idCall, ModuleRequestForMembership.ActionType.EditDisclaimerType); } View.ReloadEditor(RootObject.CallSubmissionEditorFieldRemoved(idField, type, idCall, idCommunity, View.PreloadView)); } } }
private async Task <bool> CheckDisclaimerAsync(string clientId, string lykkeEntityId, DisclaimerType type) { IDisclaimer requiresApprovalDisclaimer = (await _redisService.GetDisclaimersAsync()) .Where(x => x.LykkeEntityId == lykkeEntityId) .Where(o => o.Type == type) .Where(o => o.StartDate < DateTime.UtcNow) .OrderByDescending(p => p.StartDate) .FirstOrDefault(); if (requiresApprovalDisclaimer == null) { return(false); } IReadOnlyList <IClientDisclaimer> clientDisclaimers = await _redisService.GetClientDisclaimersAsync(clientId); HashSet <string> approvedDisclaimers = clientDisclaimers .Where(o => o.Approved) .Select(o => o.DisclaimerId) .ToHashSet(); List <Task> tasks; if (approvedDisclaimers.Contains(requiresApprovalDisclaimer.Id)) { if (requiresApprovalDisclaimer.ShowOnEachAction) { tasks = new List <Task> { _clientDisclaimerRepository.DeleteAsync(clientId, requiresApprovalDisclaimer.Id), _redisService.DeleteClientDisclaimerAsync(clientId, requiresApprovalDisclaimer.Id) }; await Task.WhenAll(tasks); } return(false); } var clientDisclaimer = new ClientDisclaimer { ClientId = clientId, DisclaimerId = requiresApprovalDisclaimer.Id, ApprovedDate = DateTime.UtcNow }; tasks = new List <Task> { _clientDisclaimerRepository.InsertOrReplaceAsync(clientDisclaimer), _redisService.AddClientDisclaimerAsync(clientDisclaimer) }; await Task.WhenAll(tasks); _log.Info("Client pending disclaimer added", new { clientId, requiresApprovalDisclaimer.Id }); return(true); }