Changeset e0cdea2 for FarmatikoData


Ignore:
Timestamp:
02/08/21 16:39:25 (4 years ago)
Author:
Dimitar Slezenkovski <dslezenkovski@…>
Branches:
master
Children:
8eb1e21, dae4cde
Parents:
0a694bb
Message:

Fix all bugs

Location:
FarmatikoData
Files:
9 edited
2 moved

Legend:

Unmodified
Added
Removed
  • FarmatikoData/FarmatikoDataContext.cs

    r0a694bb re0cdea2  
    4242                .ValueGeneratedOnAdd();
    4343
    44             /*modelBuilder.Entity<Medicine>()
    45                 .Property(x => x.Id)
    46                 .HasIdentityOptions(startValue: 1);
     44            modelBuilder.Entity<PharmacyHeadMedicine>()
     45                .Property(p => p.Id)
     46                .ValueGeneratedOnAdd();
     47
     48            modelBuilder.Entity<Medicine>()
     49                .Property(p => p.Id)
     50                .ValueGeneratedOnAdd();
    4751
    4852            modelBuilder.Entity<Pharmacy>()
    49                 .Property(x => x.Id)
    50                 .HasIdentityOptions(startValue: 1);
     53                .Property(p => p.Id)
     54                .ValueGeneratedOnAdd();
    5155
    5256            modelBuilder.Entity<PharmacyHead>()
    53                 .Property(x => x.Id)
    54                 .HasIdentityOptions(startValue: 1);
    55 
    56             modelBuilder.Entity<PharmacyHeadMedicine>()
    57                 .Property(x => x.Id)
    58                 .HasIdentityOptions(startValue: 1);
    59 
    60             modelBuilder.Entity<RequestPharmacyHead>()
    61                 .Property(x => x.Id)
    62                 .HasIdentityOptions(startValue: 1);*/
    63 
    64             /*modelBuilder.Entity<User>()
    65                 .Property(x => x.Id)
    66                 .HasIdentityOptions(startValue: 1);
    67 
    68             modelBuilder.Entity<PharmacyHeadMedicine>()
    69                 .HasKey(phm => new { phm.PheadId, phm.MedicineId });
    70 
    71             modelBuilder.Entity<PharmacyHead>()
    72                 .HasMany<Pharmacy>(p => p.Pharmacy)
    73                 .WithOne(p => p.PharmacyHead)
    74                 .HasForeignKey();
     57                .HasMany<Pharmacy>(p => p.Pharmacies)
     58                .WithOne(p => p.PharmacyHead);
    7559
    7660            modelBuilder.Entity<Pharmacy>()
    7761                .HasOne<PharmacyHead>(p => p.PharmacyHead)
    78                 .WithMany(p => p.Pharmacy);
    79             */
     62                .WithMany(p => p.Pharmacies)
     63                .HasForeignKey(x => x.PheadId);
     64
     65            modelBuilder.Entity<PharmacyHeadMedicine>()
     66            .HasKey(bc => new { bc.PheadId, bc.MedicineId});
     67
     68            modelBuilder.Entity<PharmacyHeadMedicine>()
     69                .HasOne(bc => bc.Head)
     70                .WithMany(b => b.Medicines)
     71                .HasForeignKey(bc => bc.PheadId);
     72
     73            modelBuilder.Entity<PharmacyHeadMedicine>()
     74                .HasOne(bc => bc.Medicine)
     75                .WithMany(c => c.Medicines)
     76                .HasForeignKey(bc => bc.MedicineId);
     77
    8078
    8179            base.OnModelCreating(modelBuilder);
  • FarmatikoData/FarmatikoRepo/AdminRepo.cs

    r0a694bb re0cdea2  
    2020        public async Task<IEnumerable<RequestPharmacyHead>> GetClaimingRequests()
    2121        {
    22             var reqs = await _context.PHRequests.OrderBy(x => x.Head.Name).ToListAsync();
     22            var reqs = await _context.PHRequests.Select(x => new RequestPharmacyHead
     23            {
     24                Head = x.Head,
     25                Pharmacy = x.Pharmacy
     26            }).OrderBy(x => x.Head.Name).ToListAsync();
    2327            return reqs;
    2428        }
     
    3539        }
    3640        //POST
    37         public async void RemoveClaimRequest(int Id)
     41        public void RemoveClaimRequest(RequestPharmacyHead request)
    3842        {
    39             var req = _context.PHRequests.Where(x => x.Id == Id).FirstOrDefault();
     43            var req = _context.PHRequests.Select(x => new RequestPharmacyHead { Head = x.Head, Pharmacy = x.Pharmacy, Id = x.Id})
     44                .Where(x => x.Head.Email.Equals(request.Head.Email)).FirstOrDefault();
    4045            _context.PHRequests.Remove(req);
    41             await _context.SaveChangesAsync();
     46            _context.SaveChanges();
    4247        }
    4348    }
  • FarmatikoData/FarmatikoRepo/PHRepo.cs

    r0a694bb re0cdea2  
    4141        public async Task UpdatePharmacyHead(PharmacyHead pharmacyHead)
    4242        {
    43             var Phead = await _context.PharmacyHeads.Where(x => x.Email == pharmacyHead.Email).FirstOrDefaultAsync();
    44             var EditedPHead = await _context.PharmacyHeads.AsNoTracking<PharmacyHead>().Where(x => x.Email == pharmacyHead.Email).FirstOrDefaultAsync();
     43            var user = await _context.Users.Where(x => x.Email == pharmacyHead.Email).FirstOrDefaultAsync();
     44            var EditedPHead = await _context.PharmacyHeads.Where(x => x.Email.Equals(pharmacyHead.Email)).FirstOrDefaultAsync();
    4545
    46             if (!EditedPHead.Email.Equals(pharmacyHead.Email))
     46            /*if (!EditedPHead.Email.Equals(pharmacyHead.Email) && !user.Email.Equals(pharmacyHead.Email))
     47            {
    4748                EditedPHead.Email = pharmacyHead.Email;
     49                user.Email = pharmacyHead.Email;
     50            }*/
    4851
    49             if (!EditedPHead.Name.Equals(pharmacyHead.Name))
     52            if (!EditedPHead.Name.Equals(pharmacyHead.Name) || !user.Name.Equals(pharmacyHead.Name))
     53            {
    5054                EditedPHead.Name = pharmacyHead.Name;
     55                user.Name = pharmacyHead.Name;
     56            }
    5157
    52             if (!EditedPHead.Password.Equals(pharmacyHead.Password))
     58            if (!EditedPHead.Password.Equals(pharmacyHead.Password) || !user.Password.Equals(pharmacyHead.Password))
     59            {
    5360                EditedPHead.Password = pharmacyHead.Password;
     61                user.Password = pharmacyHead.Password;
     62            }
     63            /*if (EditedPHead.Pharmacies != null)
     64            {
     65                if (EditedPHead.Pharmacies.Count() > 0)
     66                    if (!EditedPHead.Pharmacies.Equals(pharmacyHead.Pharmacies))
     67                        EditedPHead.Pharmacies = pharmacyHead.Pharmacies;
     68            }
     69            if (EditedPHead.Medicines != null)
     70            {
     71                if (EditedPHead.Medicines.Count() > 0)
     72                {
     73                    if (!EditedPHead.Medicines.Equals(pharmacyHead.Medicines))
     74                        EditedPHead.Medicines = pharmacyHead.Medicines;
     75                   
     76                }
     77                   
     78            }*/
    5479
    55             if (!EditedPHead.Pharmacies.Equals(pharmacyHead.Pharmacies))
    56                 EditedPHead.Pharmacies = pharmacyHead.Pharmacies;
    57 
    58             if (!EditedPHead.Medicines.Equals(pharmacyHead.Medicines))
    59                 EditedPHead.Medicines = pharmacyHead.Medicines;
    60 
    61             await _context.SaveChangesAsync();
     80            _context.SaveChanges();
    6281        }
    6382        public async Task ClaimPharmacy(RequestPharmacyHead pharmacy)
    6483        {
     84            var phead = _context.PharmacyHeads.Where(x => x.Email.Equals(pharmacy.Head.Email)).FirstOrDefault();
     85            pharmacy.Head = phead;
    6586            await _context.PHRequests.AddAsync(pharmacy);
    6687            await _context.SaveChangesAsync();
  • FarmatikoData/FarmatikoRepo/Repository.cs

    r0a694bb re0cdea2  
    1919        public async Task<IEnumerable<HealthcareWorker>> GetAllWorkers()
    2020        {
    21             var Workers = await _context.HealthcareWorkers.Take(5).ToListAsync();
     21            var Workers = await _context.HealthcareWorkers.Select(x => new HealthcareWorker
     22            {
     23                Id = x.Id,
     24                Name = x.Name,
     25                Branch = x.Branch,
     26                Facility = x.Facility,
     27                Title = x.Title
     28            }).Take(5).ToListAsync();
    2229            return Workers;
    2330        }
     
    5461                Packaging = x.Packaging
    5562
    56             }).Take(3).ToListAsync();
     63            }).Take(5).ToListAsync();
    5764            return Medicines;
    5865        }
     
    9299        {
    93100            var SearchQuery = await _context.HealthFacilities
    94             .Where(x => x.Name.ToLowerInvariant().Contains(query.ToLowerInvariant()))
     101            .Where(x => x.Name.ToLower().Contains(query.ToLower())
     102            || x.Municipality.ToLower().Contains(query.ToLower())
     103            || x.Type.ToLower().Contains(query.ToLower())).Take(5)
    95104            .OrderBy(x => x.Name).ToListAsync();
    96105
     
    101110        {
    102111            var SearchQuery = await _context.Medicines
    103             .Where(x => x.Name.ToLowerInvariant().Contains(query.ToLowerInvariant()))
     112            .Where(x => x.Name.ToLower().Contains(query.ToLower())
     113            || x.Form.ToLower().Contains(query.ToLower())
     114            || x.Strength.ToLower().Contains(query.ToLower())
     115            || x.Packaging.ToLower().Contains(query.ToLower())).Take(20)
    104116            .OrderBy(x => x.Name).ToListAsync();
    105117
     
    110122        {
    111123            var SearchQuery = await _context.Pharmacies
    112             .Where(x => x.Name.ToLowerInvariant().Contains(query.ToLowerInvariant()))
     124            .Where(x => x.Name.ToLower().Contains(query.ToLower())
     125            || x.PharmacyHead.Name.ToLower().Contains(query.ToLower())).Take(5)
    113126            .OrderBy(x => x.Name).ToListAsync();
    114127
     
    118131        public async Task<IEnumerable<HealthcareWorker>> SearchWorkers(string query)
    119132        {
    120             var SearchQuery = await _context.HealthcareWorkers
    121             .Where(x => x.Name.ToLowerInvariant().Contains(query.ToLowerInvariant()))
     133            var SearchQuery = await _context.HealthcareWorkers.Include(x => x.Facility)
     134            .Where(x => x.Name.ToLower().Contains(query.ToLower())
     135            || x.Facility.Name.ToLower().Contains(query.ToLower())).Take(20)
    122136            .OrderBy(x => x.Name).ToListAsync();
    123137
     
    146160        public async Task AddPharmacy(Pharmacy pharmacy)
    147161        {
    148             await _context.Pharmacies.AddAsync(pharmacy);
    149             _context.SaveChanges();
     162            pharmacy.Id = 0;
     163            if (pharmacy.Id == 0)
     164            {
     165                var phars = _context.Pharmacies.Select(x => new Pharmacy
     166                {
     167                    Name = x.Name,
     168                    Location = x.Location,
     169                    Address = x.Address
     170                }).ToList();
     171                var pharms = phars.Where(x => x.Name.Equals(pharmacy.Name) && x.Location.Equals(pharmacy.Location) && x.Address.Equals(pharmacy.Address)).ToList();
     172                if (pharms is null || pharms.Count() == 0)
     173                {
     174                    await _context.Pharmacies.AddAsync(pharmacy);
     175                    _context.SaveChanges();
     176                }
     177               
     178            }
    150179        }
    151180
     
    242271        {
    243272            var PHead = await _context.PharmacyHeads.Where(x => x.Id == Id).FirstOrDefaultAsync();
    244             PHead.DeletedOn = DateTime.UtcNow;
    245             await _context.SaveChangesAsync();
     273            var user = await _context.Users.Where(x => x.Email.Equals(PHead.Email)).FirstOrDefaultAsync();
     274            _context.PharmacyHeads.Remove(PHead);
     275            _context.Users.Remove(user);
     276            _context.SaveChanges();
    246277        }
    247278
     
    290321            return phmeds;
    291322        }
    292 
    293         public async Task<bool> AddUser(User user)
     323       
     324        /*public async Task<bool> AddUser(User user)
    294325        {
    295326            if (user.Id == 0)
     
    303334                }).ToListAsync();
    304335                var usr = users.Where(x => x.Email.Equals(user.Email)).ToList();
    305                 if (usr != null || usr.Count() > 0)
     336                if (usr != null && usr.Count() > 0)
    306337                {
    307338                    return true;
     
    315346            }
    316347            return false;
    317         }
     348        }*/
    318349
    319350        public async Task<List<PharmacyHeadMedicine>> GetAllPHMedicines()
     
    329360            return list;
    330361        }
     362
     363        public ICollection<PharmacyHeadMedicine> GetPHMedicines()
     364        {
     365            var meds = _context.PharmacyHeadMedicines.Select(x => new PharmacyHeadMedicine
     366            {
     367                PheadId = x.PheadId,
     368                Head = x.Head,
     369                MedicineId = x.MedicineId,
     370                Medicine = x.Medicine
     371            }).ToList();
     372            return meds;
     373        }
    331374    }
    332375}
  • FarmatikoData/FarmatikoRepoInterfaces/IAdminRepo.cs

    r0a694bb re0cdea2  
    1212        Task<IEnumerable<RequestPharmacyHead>> GetClaimingRequests();
    1313        Task<IEnumerable<PharmacyHead>> GetPharmacyHeads();
    14         void RemoveClaimRequest(int Id);
     14        void RemoveClaimRequest(RequestPharmacyHead Id);
    1515    }
    1616}
  • FarmatikoData/FarmatikoRepoInterfaces/IRepository.cs

    r0a694bb re0cdea2  
    4646        User GetRole(string userName);
    4747        ICollection<PharmacyHeadMedicine> GetPHMedicines(string email);
    48         Task<bool> AddUser(User user);
     48        ICollection<PharmacyHeadMedicine> GetPHMedicines();
     49        //Task<bool> AddUser(User user);
    4950    }
    5051}
  • FarmatikoData/Migrations/20210208041424_Initial-Create.Designer.cs

    r0a694bb re0cdea2  
    1111{
    1212    [DbContext(typeof(FarmatikoDataContext))]
    13     [Migration("20210205174704_Initial-Migration")]
    14     partial class InitialMigration
     13    [Migration("20210208041424_Initial-Create")]
     14    partial class InitialCreate
    1515    {
    1616        protected override void BuildTargetModel(ModelBuilder modelBuilder)
     
    207207                        .HasColumnType("text");
    208208
    209                     b.Property<int?>("PharmacyHeadId")
    210                         .HasColumnType("integer");
    211 
    212                     b.Property<int>("PheadId")
     209                    b.Property<int?>("PheadId")
    213210                        .HasColumnType("integer");
    214211
     
    218215                    b.HasKey("Id");
    219216
    220                     b.HasIndex("PharmacyHeadId");
     217                    b.HasIndex("PheadId");
    221218
    222219                    b.ToTable("Pharmacies");
     
    302299                        .HasColumnType("timestamp without time zone");
    303300
    304                     b.Property<int>("HeadId")
    305                         .HasColumnType("integer");
    306 
    307                     b.Property<int>("PharmacyId")
     301                    b.Property<int?>("HeadId")
     302                        .HasColumnType("integer");
     303
     304                    b.Property<int?>("PharmacyId")
    308305                        .HasColumnType("integer");
    309306
     
    363360                    b.HasOne("FarmatikoData.Models.PharmacyHead", "PharmacyHead")
    364361                        .WithMany("Pharmacies")
    365                         .HasForeignKey("PharmacyHeadId");
     362                        .HasForeignKey("PheadId");
    366363                });
    367364
     
    392389                    b.HasOne("FarmatikoData.Models.PharmacyHead", "Head")
    393390                        .WithMany()
    394                         .HasForeignKey("HeadId")
    395                         .OnDelete(DeleteBehavior.Cascade)
    396                         .IsRequired();
     391                        .HasForeignKey("HeadId");
    397392
    398393                    b.HasOne("FarmatikoData.Models.Pharmacy", "Pharmacy")
    399394                        .WithMany()
    400                         .HasForeignKey("PharmacyId")
    401                         .OnDelete(DeleteBehavior.Cascade)
    402                         .IsRequired();
     395                        .HasForeignKey("PharmacyId");
    403396                });
    404397#pragma warning restore 612, 618
  • FarmatikoData/Migrations/20210208041424_Initial-Create.cs

    r0a694bb re0cdea2  
    55namespace FarmatikoData.Migrations
    66{
    7     public partial class InitialMigration : Migration
     7    public partial class InitialCreate : Migration
    88    {
    99        protected override void Up(MigrationBuilder migrationBuilder)
     
    150150                    Address = table.Column<string>(nullable: false),
    151151                    WorkAllTime = table.Column<bool>(nullable: false),
    152                     PheadId = table.Column<int>(nullable: false),
    153                     PharmacyHeadId = table.Column<int>(nullable: true)
     152                    PheadId = table.Column<int>(nullable: true)
    154153                },
    155154                constraints: table =>
     
    157156                    table.PrimaryKey("PK_Pharmacies", x => x.Id);
    158157                    table.ForeignKey(
    159                         name: "FK_Pharmacies_PharmacyHeads_PharmacyHeadId",
    160                         column: x => x.PharmacyHeadId,
     158                        name: "FK_Pharmacies_PharmacyHeads_PheadId",
     159                        column: x => x.PheadId,
    161160                        principalTable: "PharmacyHeads",
    162161                        principalColumn: "Id",
     
    201200                    CreatedOn = table.Column<DateTime>(nullable: false, defaultValueSql: "now()"),
    202201                    DeletedOn = table.Column<DateTime>(nullable: true),
    203                     HeadId = table.Column<int>(nullable: false),
    204                     PharmacyId = table.Column<int>(nullable: false)
     202                    HeadId = table.Column<int>(nullable: true),
     203                    PharmacyId = table.Column<int>(nullable: true)
    205204                },
    206205                constraints: table =>
     
    212211                        principalTable: "PharmacyHeads",
    213212                        principalColumn: "Id",
    214                         onDelete: ReferentialAction.Cascade);
     213                        onDelete: ReferentialAction.Restrict);
    215214                    table.ForeignKey(
    216215                        name: "FK_PHRequests_Pharmacies_PharmacyId",
     
    218217                        principalTable: "Pharmacies",
    219218                        principalColumn: "Id",
    220                         onDelete: ReferentialAction.Cascade);
     219                        onDelete: ReferentialAction.Restrict);
    221220                });
    222221
     
    227226
    228227            migrationBuilder.CreateIndex(
    229                 name: "IX_Pharmacies_PharmacyHeadId",
     228                name: "IX_Pharmacies_PheadId",
    230229                table: "Pharmacies",
    231                 column: "PharmacyHeadId");
     230                column: "PheadId");
    232231
    233232            migrationBuilder.CreateIndex(
  • FarmatikoData/Migrations/FarmatikoDataContextModelSnapshot.cs

    r0a694bb re0cdea2  
    205205                        .HasColumnType("text");
    206206
    207                     b.Property<int?>("PharmacyHeadId")
    208                         .HasColumnType("integer");
    209 
    210                     b.Property<int>("PheadId")
     207                    b.Property<int?>("PheadId")
    211208                        .HasColumnType("integer");
    212209
     
    216213                    b.HasKey("Id");
    217214
    218                     b.HasIndex("PharmacyHeadId");
     215                    b.HasIndex("PheadId");
    219216
    220217                    b.ToTable("Pharmacies");
     
    300297                        .HasColumnType("timestamp without time zone");
    301298
    302                     b.Property<int>("HeadId")
    303                         .HasColumnType("integer");
    304 
    305                     b.Property<int>("PharmacyId")
     299                    b.Property<int?>("HeadId")
     300                        .HasColumnType("integer");
     301
     302                    b.Property<int?>("PharmacyId")
    306303                        .HasColumnType("integer");
    307304
     
    361358                    b.HasOne("FarmatikoData.Models.PharmacyHead", "PharmacyHead")
    362359                        .WithMany("Pharmacies")
    363                         .HasForeignKey("PharmacyHeadId");
     360                        .HasForeignKey("PheadId");
    364361                });
    365362
     
    390387                    b.HasOne("FarmatikoData.Models.PharmacyHead", "Head")
    391388                        .WithMany()
    392                         .HasForeignKey("HeadId")
    393                         .OnDelete(DeleteBehavior.Cascade)
    394                         .IsRequired();
     389                        .HasForeignKey("HeadId");
    395390
    396391                    b.HasOne("FarmatikoData.Models.Pharmacy", "Pharmacy")
    397392                        .WithMany()
    398                         .HasForeignKey("PharmacyId")
    399                         .OnDelete(DeleteBehavior.Cascade)
    400                         .IsRequired();
     393                        .HasForeignKey("PharmacyId");
    401394                });
    402395#pragma warning restore 612, 618
  • FarmatikoData/Models/Pharmacy.cs

    r0a694bb re0cdea2  
    3131            this.WorkAllTime = WorkAllTime;
    3232        }
    33         public int PheadId { get; set; }
     33        public int? PheadId { get; set; }
    3434        public PharmacyHead PharmacyHead { get; set; }
    3535    }
  • FarmatikoData/Models/RequestPharmacyHead.cs

    r0a694bb re0cdea2  
    11using FarmatikoData.Base;
     2using Newtonsoft.Json;
    23using System;
    34using System.Collections.Generic;
     
    1314        {
    1415        }
    15         [Required]
    16         [JsonPropertyName("PharmacyHead")]
     16       
     17        [JsonProperty("PharmacyHead")]
    1718        public PharmacyHead Head { get; set; }
    18         [Required]
    19         [JsonPropertyName("Pharmacy")]
     19       
     20        [JsonProperty("Pharmacy")]
    2021        public Pharmacy Pharmacy { get; set; }
    2122
Note: See TracChangeset for help on using the changeset viewer.