Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • iknow-api/Services/Implementations/EnrollmentService.cs

    r002cf5f r1b20b22  
    33using iknow_api.Models;
    44using Microsoft.EntityFrameworkCore;
    5 using Npgsql;
    65
    76namespace iknow_api.Services
    … …  
    221220                };
    222221            }
    223             catch (DbUpdateException ex) when (IsUniqueViolation(ex))
    224             {
    225                 // Two enrolments for the same semester sent at the same time both
    226                 // pass the check above, because each transaction reads the state
    227                 // from before the other one wrote. UNIQUE (user_id, semester_id)
    228                 // is what actually settles it, so the loser gets the same
    229                 // sentence as if the check had caught it.
    230                 await transaction.RollbackAsync();
    231                 return Fail("You are already enrolled in that semester.");
    232             }
    233222            catch
    234223            {
    … …  
    237226            }
    238227        }
    239 
    240         /// <summary>23505 is unique_violation.</summary>
    241         private static bool IsUniqueViolation(DbUpdateException ex) =>
    242             ex.InnerException is PostgresException { SqlState: "23505" };
    243228
    244229        private static EnrollSemesterResultDto Fail(string message) =>
Note: See TracChangeset for help on using the changeset viewer.