コード例 #1
0
 /// <summary>
 /// Configures model creation
 /// </summary>
 /// <param name="modelBuilder">modelBuilder to configure Model Creation</param>
 protected override void OnModelCreating(ModelBuilder modelBuilder)
 {
     User.Configure(modelBuilder);
     Phone.Configure(modelBuilder);
     Address.Configure(modelBuilder);
     UserAddress.Configure(modelBuilder);
     Role.Configure(modelBuilder);
     Organization.Configure(modelBuilder);
     OrgAddress.Configure(modelBuilder);
     ExternalContact.Configure(modelBuilder);
     Membership.Configure(modelBuilder);
     Currency.Configure(modelBuilder);
     BankAccount.Configure(modelBuilder);
     OrgAccount.Configure(modelBuilder);
     Balance.Configure(modelBuilder);
     Target.Configure(modelBuilder);
     FinOp.Configure(modelBuilder);
     Tag.Configure(modelBuilder);
     TagFinOp.Configure(modelBuilder);
     Event.Configure(modelBuilder);
     EventImage.Configure(modelBuilder);
     Complaint.Configure(modelBuilder);
     GoodsType.Configure(modelBuilder);
     GoodsCategory.Configure(modelBuilder);
     OfferedItem.Configure(modelBuilder);
     RequestedItem.Configure(modelBuilder);
     BankImport.Configure(modelBuilder);
     BankImportDetail.Configure(modelBuilder);
     PasswordReset.Configure(modelBuilder);
     BannedUser.Configure(modelBuilder);
     BannedOrganization.Configure(modelBuilder);
     SubscribeOrganization.Configure(modelBuilder);
     Status.Configure(modelBuilder);
     OfferedItemImage.Configure(modelBuilder);
     RequestedItemImage.Configure(modelBuilder);
     UserResponse.Configure(modelBuilder);
     OrganizationResponse.Configure(modelBuilder);
     Donation.Configure(modelBuilder);
     Bank.Configure(modelBuilder);
     AutoImportIntervals.Configure(modelBuilder);
 }
コード例 #2
0
 public AutoImportIntervals Update(AutoImportIntervals autoImportIntervals)
 {
     return(_context.Update(autoImportIntervals).Entity);
 }
コード例 #3
0
 public AutoImportIntervals Create(AutoImportIntervals item)
 {
     return(_context.AutoImportInterval.Add(item).Entity);
 }
コード例 #4
0
        /// <summary>
        /// Registers new organization
        /// </summary>
        /// <param name="item"> Item to register </param>
        /// <returns>Registered item</returns>
        public OrganizationRegistrationViewModel RegisterOrganization(OrganizationRegistrationViewModel item)
        {
            var checkOrganization = _unitOfWork.OrganizationRepository.Read().Where(o => o.Name == item.Name).FirstOrDefault();

            if (checkOrganization == null)
            {
                var user = _unitOfWork.UsersRepository.GetUser(item.AdministratorLogin);
                if (user != null)
                {
                    var role            = _unitOfWork.RoleRepository.Read().Where(r => r.Name == "admin").FirstOrDefault();
                    var checkMembership = _unitOfWork.MembershipRepository.Read().Where(m => (m.UserId == user.Id) && (m.RoleId == role.Id)).FirstOrDefault();
                    if (checkMembership == null)
                    {
                        var t = _imgManageService.UploadImageAsync(Convert.FromBase64String(item.LogoBase64Code), item.LogoImageExtension);
                        Task.WhenAll(t);
                        var organization = new Organization {
                            Name = item.Name, Description = item.Description, LogoUrl = t.Result
                        };

                        _unitOfWork.OrganizationRepository.Create(organization);

                        var membership = new Membership {
                            UserId = user.Id, OrgId = organization.Id, RoleId = role.Id
                        };
                        _unitOfWork.MembershipRepository.Create(membership);

                        var address = new Address {
                            City = item.City, Street = item.Street, Country = item.Country, Building = item.House
                        };
                        _unitOfWork.AddressRepository.Create(address);

                        var orgAddres = new OrgAddress {
                            OrgId = organization.Id, AddressId = address.Id
                        };
                        _unitOfWork.OrganizationAddressRepository.Create(orgAddres);
                        organization.OrgAddresses.Add(orgAddres);

                        var interval = new AutoImportIntervals {
                            OrgId = organization.Id, Interval = Constants.DefaultImportInterval, LastUpdateDate = DateTime.Now
                        };
                        _unitOfWork.ImportIntervalRepository.Create(interval);
                        _unitOfWork.SaveChanges();

                        var result = new OrganizationRegistrationViewModel
                        {
                            Name = organization.Name,
                            AdministratorLogin = item.AdministratorLogin,
                            City        = address.City,
                            Country     = address.Country,
                            Street      = address.Street,
                            Description = organization.Description,
                            House       = address.Building
                        };
                        return(result);
                    }
                    else
                    {
                        item.UserError = "Цей користувач вже адмініструє організацію";
                        return(item);
                    }
                }
                item.UserError = "Користувача з таким логіном не зареєстровано";
                return(item);
            }
            item.NameError = "Організація з такою назвою вже існує";
            return(item);
        }