示例#1
0
        /// <summary>
        /// Gets all the Downloaded Reports for a User.
        /// </summary>
        /// <param name="userId">The ID of the target User.</param>
        /// <param name="search">Searches the Reports by Title and Summary.</param>
        /// <returns>ICollection of Report Models.</returns>
        public async Task <ICollection <ReportModel> > GetDownloadedReports(int userId, string search)
        {
            var user = await _context.Users.FirstOrDefaultAsync(u => u.Id == userId);

            ValidateUserExists(user);

            var reports = await _context.DownloadedReports
                          .Include(ur => ur.Report)
                          .ThenInclude(r => r.Author)
                          .Include(ur => ur.Report)
                          .ThenInclude(r => r.Industry)
                          .Include(ur => ur.Report)
                          .ThenInclude(r => r.ReportTags)
                          .ThenInclude(r => r.Tag)
                          .Include(ur => ur.Report)
                          .ThenInclude(r => r.Downloads)
                          .Where(ur => !ur.Report.IsDeleted)
                          .Where(ur => ur.UserId == userId)
                          .Select(ur => ReportMapper.MapModelFromEntity(ur.Report))
                          .ToListAsync();

            reports = SearchReports(search, reports).ToList();

            return(reports);
        }
示例#2
0
 public Report GetReportForAppointment(Guid id)
 {
     using (MQuinceDbContext _context = new MQuinceDbContext(_dbContext))
     {
         return(ReportMapper.MapReportPersistenceToReportEntity(_context.Reports.SingleOrDefault(c => c.AppointmentPersistanceId.Equals(id))));
     }
 }
        /// <summary>
        /// Lists Active Reports from context. Each Report must not be Pending or Deleted. Each Report's Industry must not be Deleted.
        /// /// </summary>
        /// <param name="sort">The property to sort the Reports by. Can be left null for default sorting by ID.</param>
        /// <param name="search">Searches the Report List by Name and Summary. Can be left null to display all Reports.</param>
        /// <param name="author">Filters the Report List by matching the author's Email address.</param>
        /// <param name="industry">Filters the Report List by Industry.</param>
        /// <param name="tag">Filters the Report List by Tag.</param>
        /// <returns>ICollection of Report Models</returns>
        public async Task <ICollection <ReportModel> > GetReports(string sort, string search, string author, string industry, string tag)
        {
            var reports = await _context.Reports
                          .Where(r => !r.IsDeleted)
                          .Where(r => !r.IsPending)
                          .Include(r => r.Industry)
                          .Where(r => !r.Industry.IsDeleted)
                          .Include(r => r.Author)
                          .Include(r => r.Downloads)
                          .Include(r => r.ReportTags)
                          .ThenInclude(rt => rt.Tag)
                          .Select(r => ReportMapper.MapModelFromEntity(r))
                          .ToListAsync();

            //Sort Reports
            reports = SortReports(sort, reports).ToList();

            //Search Reports
            reports = SearchReports(search, reports).ToList();

            //Filter Reports
            if (author != null)
            {
                reports = reports.Where(r => r.Author.ToLower().Contains(author.ToLower())).ToList();
            }
            if (industry != null)
            {
                reports = reports.Where(r => r.Industry.ToLower().Contains(industry.ToLower())).ToList();
            }
            if (tag != null)
            {
                reports = reports.Where(r => string.Join(' ', r.Tags).ToLower().Contains(tag.ToLower())).ToList();
            }
            return(reports);
        }
示例#4
0
        public async Task UpdateReport(ReportToUpdateDto reportToUpdate)
        {
            var report = await _reportRepository.GetById(reportToUpdate.ReportId);

            var update = ReportMapper.UpdateReportMap(reportToUpdate, report);
            await _reportRepository.UpdateReport(update);
        }
示例#5
0
        public IActionResult AddReport(ReportDto dto)
        {
            Report report = ReportMapper.ReportDtoToReport(dto);

            App.Instance().ReportService.AddEntity(report);
            return(Ok());
        }
        /// <summary>
        /// Updates the properties of an existing Report, then moves it to the Pending list.
        /// </summary>
        /// <param name="id">The ID for the target Report.</param>
        /// <param name="title">The new Title of the Report.</param>
        /// <param name="summary">The new Summary of the Report.</param>
        /// <param name="description">The new Description of the Report.</param>
        /// <param name="imgUrl">The path to the new Image to be displayed for the Report.</param>
        /// <param name="industry">The new Industry of the Report.</param>
        /// <param name="tags">The new list of Tags for the Report. New Tags will be created if any do not exist.</param>
        /// <returns>A Report Model on success. </returns>
        public async Task <ReportModel> UpdateReport(int id, string title, string summary, string description, string imgUrl, string industry, string tags)
        {
            //Throw if report with new Title already exists.
            if (await _context.Reports.AnyAsync(r => r.Title == title && r.Id != id))
            {
                throw new ArgumentException($"Report with title {title} already exists.");
            }
            var report = await _context.Reports
                         .Include(r => r.Industry)
                         .Include(r => r.Author)
                         .Include(r => r.ReportTags)
                         .ThenInclude(rt => rt.Tag)
                         .FirstOrDefaultAsync(r => r.Id == id);

            //Throw if ID is invalid.
            ValidateReportExists(report);


            var reportModel = ReportMapper.MapModelFromInput(title, summary, description, imgUrl, null, industry, tags);

            //Map Title
            if (title != null && title != string.Empty)
            {
                report.Title = reportModel.Title;
            }
            //Map Summary
            if (summary != null && summary != string.Empty)
            {
                report.Summary = reportModel.Summary;
            }
            //Map Description
            if (description != null && description != string.Empty)
            {
                report.Description = reportModel.Description;
            }
            //Map Image
            if (imgUrl != null && imgUrl != string.Empty)
            {
                report.ImgUrl = reportModel.ImgUrl;
            }
            //Map Industry
            report.Industry = await _context.Industries.FirstOrDefaultAsync(i => i.Name == reportModel.Industry);

            //Set ModifiedOn
            report.ModifiedOn = DateTime.UtcNow;
            report.ReportTags.Clear();
            //Set Pending
            report.IsPending = true;
            await _context.SaveChangesAsync();

            //Map Tags, Add new Tags to Context if tags are not found.
            await AddTagsToReport(report, reportModel.Tags);

            await _context.SaveChangesAsync();

            //Return Report Model
            reportModel = ReportMapper.MapModelFromEntity(report);
            return(reportModel);
        }
示例#7
0
        public IActionResult GetAppointmentReport(AppointmentDTO dto)
        {
            String patientId = User.Identity.Name;
            Report report    = _reportSearchService.GetReportForAppointment(dto.StartTime, dto.DoctorId, patientId);
            AppointmentReportDTO reportDTO = ReportMapper.ReportToAppointmentReportDTO(report);

            return(Ok(reportDTO));
        }
示例#8
0
 public EventController(AppDbContext dbContext, EventMapper eventMapper, ReportMapper reportMapper, ImageDescriptionMapper imageDescriptionMapper, IMapper <EventAttendance, EventAttendanceViewModel> attendanceMapper)
 {
     DbContext              = dbContext ?? throw new ArgumentNullException(nameof(dbContext));
     EventMapper            = eventMapper ?? throw new ArgumentNullException(nameof(eventMapper));
     ReportMapper           = reportMapper ?? throw new ArgumentNullException(nameof(reportMapper));
     ImageDescriptionMapper = imageDescriptionMapper ?? throw new ArgumentNullException(nameof(imageDescriptionMapper));
     AttendanceMapper       = attendanceMapper ?? throw new ArgumentNullException(nameof(attendanceMapper));
 }
示例#9
0
        public async Task <IEnumerable <ReportToSendDto> > GetTodayReports(Guid soldierOnDutyId)
        {
            var companyId = (Guid)_soldierRepository.GetById(soldierOnDutyId).Result.CompanyId;
            var reports   = await _reportRepository.GetAll(companyId);

            var todayReports = reports.Where(x => x.Date.Date == DateTime.Today.Date);

            return(todayReports.Select(x => ReportMapper.ReportToSendMap(x, _soldierRepository)));
        }
示例#10
0
        public ReportTemplateDto UpdateReportTemplate(ReportTemplateDto reportTemplateDto, string userID)
        {
            ReportTemplateDirec reportTemplateDirec = _dbContext.Set <ReportTemplateDirec>().Where(p => p.TemplateID == reportTemplateDto.UniqueID).FirstOrDefault();

            if (reportTemplateDto.IsPositive == null)
            {
                reportTemplateDto.IsPositive = 0;
            }
            if (reportTemplateDirec != null)
            {
                reportTemplateDirec.ItemName = reportTemplateDto.TemplateName;
                ReportTemplateDirec reportTemplateDirecDup = _dbContext.Set <ReportTemplateDirec>().Where(p => p.UserID == reportTemplateDirec.UserID && p.ItemName == reportTemplateDto.TemplateName).FirstOrDefault();
                if (reportTemplateDirecDup != null)
                {
                    if (reportTemplateDirecDup.UniqueID != reportTemplateDirec.UniqueID)
                    {
                        return(null);
                    }
                }

                ReportTemplate reportTemplateOld = _dbContext.Set <ReportTemplate>().Where(p => p.UniqueID == reportTemplateDto.UniqueID).FirstOrDefault();
                if (reportTemplateOld != null)
                {
                    //reportTemplateOld.TemplateName = reportTemplateDto.TemplateName;
                    //reportTemplateOld.ModalityType = reportTemplateDto.ModalityType;
                    //reportTemplateOld.BodyPart = reportTemplateDto.BodyPart;
                    //reportTemplateOld.Gender = reportTemplateDto.Gender;
                    //reportTemplateOld.WYS = ReportMapper.GetBytes(reportTemplateDto.WYSText);
                    //reportTemplateOld.WYG = ReportMapper.GetBytes(reportTemplateDto.WYGText);

                    reportTemplateOld.TemplateName = reportTemplateDto.TemplateName;
                    reportTemplateOld.ModalityType = reportTemplateDto.ModalityType;
                    reportTemplateOld.BodyPart     = reportTemplateDto.BodyPart;
                    reportTemplateOld.Gender       = reportTemplateDto.Gender;
                    reportTemplateOld.WYS          = ReportMapper.GetBytes(reportTemplateDto.WYSText == null ? "" : reportTemplateDto.WYSText);
                    reportTemplateOld.WYG          = ReportMapper.GetBytes(reportTemplateDto.WYGText == null ? "" : reportTemplateDto.WYSText);

                    reportTemplateOld.ShortcutCode  = reportTemplateDto.ShortcutCode == null ? reportTemplateOld.ShortcutCode : reportTemplateDto.ShortcutCode;
                    reportTemplateOld.ACRCode       = reportTemplateDto.ACRCode == null ? reportTemplateOld.ACRCode : reportTemplateDto.ACRCode;
                    reportTemplateOld.DoctorAdvice  = reportTemplateDto.DoctorAdvice == null ? reportTemplateOld.DoctorAdvice : reportTemplateDto.DoctorAdvice;
                    reportTemplateOld.BodyCategory  = reportTemplateDto.BodyCategory == null ? reportTemplateOld.BodyCategory : reportTemplateDto.BodyCategory;
                    reportTemplateOld.IsPositive    = reportTemplateDto.IsPositive == null ? reportTemplateOld.IsPositive : reportTemplateDto.IsPositive;
                    reportTemplateOld.CheckItemName = string.IsNullOrEmpty(reportTemplateDto.CheckItemName)? reportTemplateOld.CheckItemName: reportTemplateDto.CheckItemName;

                    _dbContext.SaveChanges();
                }
            }

            ReportTemplate reportTemplate = _dbContext.Set <ReportTemplate>().Where(p => p.UniqueID == reportTemplateDto.UniqueID).FirstOrDefault();

            if (reportTemplate != null)
            {
                return(Mapper.Map <ReportTemplate, ReportTemplateDto>(reportTemplate));
            }

            return(null);
        }
示例#11
0
        public async Task <IActionResult> CreateAsync([FromBody] InReportDTO reportDTO)
        {
            var report = ReportMapper.Map(reportDTO);

            report = _repositoryManager.ReportRepository.Create(report);

            await _repositoryManager.SaveAsync();

            return(Ok(ReportMapper.Map(report)));
        }
示例#12
0
        /// <summary>
        /// Gets a report from the context by its ID.
        /// </summary>
        /// <param name="id">The ID for the target Report.</param>
        /// <returns>On success - a Report Model. Throws ArgumentNullException if ID is invalid.</returns>
        public async Task <ReportModel> GetReport(int id)
        {
            var report = await _context.Reports
                         .Include(r => r.Industry)
                         .Include(r => r.Author)
                         .Include(r => r.ReportTags)
                         .ThenInclude(rt => rt.Tag)
                         .FirstOrDefaultAsync(r => r.Id == id);

            ValidateReportExists(report);
            var reportDTO = ReportMapper.MapModelFromEntity(report);

            return(reportDTO);
        }
示例#13
0
        public async Task <IActionResult> UpdateLockStatusAsync([FromRoute] int id, bool @lock)
        {
            var report = await _repositoryManager.ReportRepository.GetAsync(id);

            if (report == null)
            {
                return(NotFound());
            }

            report.Update(@lock);

            await _repositoryManager.SaveAsync();

            return(Ok(ReportMapper.CompleteMap(report)));
        }
示例#14
0
 public IdentifiableDTO <ReportDTO> GetReportForAppointment(Guid id)
 {
     try
     {
         return(ReportMapper.MapReportEntityToReportIdentifierDTO(_reportRepository.GetReportForAppointment(id)));
     }
     catch (ArgumentNullException)
     {
         throw new NotFoundEntityException();
     }
     catch (Exception)
     {
         throw new InternalServerErrorException();
     }
 }
示例#15
0
        public IActionResult GetSearchedReports(ReportSearchDTO dto)
        {
            try
            {
                ReportValidator.Validate(dto);
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }


            List <Report>    reports    = _reportSearchService.GetSearchedReports(dto.Doctor, dto.startDate, dto.endDate, dto.type);
            List <ReportDTO> reportDTOs = ReportMapper.ListExaminationSurgeryToReport(reports);

            return(Ok(reportDTOs));
        }
示例#16
0
        /// <summary>
        /// Lists the 4 Most Downloaded Reports in the context.
        /// </summary>
        /// <returns>ICollection of Report Models</returns>
        public async Task <ICollection <ReportModel> > GetMostDownloadedReports()
        {
            var reports = await _context.Reports
                          .Where(r => !r.IsDeleted)
                          .Where(r => !r.IsPending)
                          .Include(r => r.Industry)
                          .Include(r => r.Author)
                          .Include(r => r.Downloads)
                          .Include(r => r.ReportTags)
                          .ThenInclude(rt => rt.Tag)
                          .OrderByDescending(r => r.Downloads.Count)
                          .Take(4)
                          .Select(r => ReportMapper.MapModelFromEntity(r))
                          .ToListAsync();

            return(reports);
        }
示例#17
0
        /// <summary>
        /// Lists all Pending Reports
        /// </summary>
        /// <param name="sort">The property to sort the Reports by. Can be left null for default sorting by ID.</param>
        /// <param name="search">Searches the Report List by Name and Summary. Can be left null to display all Reports.</param>
        /// <returns>ICollection of Report Models</returns>
        public async Task <ICollection <ReportModel> > GetPendingReports(string sort, string search)
        {
            var reports = await _context.Reports
                          .Where(r => r.IsPending)
                          .Include(r => r.Industry)
                          .Include(r => r.Author)
                          .Include(r => r.ReportTags)
                          .ThenInclude(rt => rt.Tag)
                          .Select(r => ReportMapper.MapModelFromEntity(r))
                          .ToListAsync();

            reports = SortReports(sort, reports).ToList();

            reports = SearchReports(search, reports).ToList();

            return(reports);
        }
示例#18
0
        public async Task <IEnumerable <ReportToSendDto> > GetReports(Guid soldierOnDutyId)
        {
            var companyId = Guid.Empty;
            var companies = await _companyRepository.GetAll();

            foreach (var company in companies)
            {
                if (company.CommanderId == soldierOnDutyId)
                {
                    companyId = company.Id;
                    break;
                }
            }
            var reports = await _reportRepository.GetAll(companyId);

            return(reports.Select(x => ReportMapper.ReportToSendMap(x, _soldierRepository)));
        }
示例#19
0
        public async Task <IActionResult> PostReport(int id, [FromBody] ReportViewModel model)
        {
            var @event = await DbContext.Events.SingleOrDefaultAsync(e => e.Id == id);

            if (@event == null)
            {
                return(NotFound());
            }

            var report = ReportMapper.Update(new Report(), model);

            @event.EventReports.Add(new EventReport {
                Report = report
            });
            await DbContext.SaveChangesAsync();

            return(CreatedAtRoute("GetReport", new { id = report.Id }, ReportMapper.Map(report)));
        }
示例#20
0
        /// <summary>
        /// get report history
        /// </summary>
        /// <param name="reportID"></param>
        /// <returns></returns>
        public IEnumerable <ReportListDto> GetReportListByReportID(string reportID)
        {
            List <ReportListDto> reportLists = new List <ReportListDto>();
            var query = (from r in _dbContext.Set <ReportList>()
                         join u in _dbContext.Set <User>() on r.Creater equals u.UniqueID
                         into ru
                         from ru1 in ru.DefaultIfEmpty()
                         join u2 in _dbContext.Set <User>() on r.Mender equals u2.UniqueID
                         into ru2
                         from ru3 in ru2.DefaultIfEmpty()
                         where r.ReportID == reportID
                         select new
            {
                UniqueID = r.UniqueID,
                WYS = r.WYS,
                WYG = r.WYG,
                IsPositive = r.IsPositive,
                Creater = ru1.LocalName,
                Mender = ru3.LocalName,
                OperationTime = r.OperationTime,
                Status = r.Status
            }).Distinct().OrderByDescending(c => c.OperationTime).ToList();

            foreach (var r in query)
            {
                ReportListDto reportListDto = new ReportListDto
                {
                    UniqueID      = r.UniqueID,
                    WYSText       = ReportMapper.GetStrFromRTF(ReportMapper.GetStringFromBytes(r.WYS)),
                    WYGText       = ReportMapper.GetStrFromRTF(ReportMapper.GetStringFromBytes(r.WYG)),
                    IsPositive    = r.IsPositive,
                    Creater       = r.Creater,
                    Mender        = r.Mender,
                    Status        = r.Status,
                    OperationTime = r.OperationTime
                };
                reportLists.Add(reportListDto);
            }

            return(reportLists);
        }
示例#21
0
        /// <summary>
        /// Creates a new Report from given Strings and places it in Pending.
        /// </summary>
        /// <param name="title">The title of the new Report. Between 5 and 100 characters.</param>
        /// <param name="summary">The summary of the new Report. Between 5 and 300 characters.</param>
        /// <param name="description">The description of the new Report. Between 5 and 5000 characters.</param>
        /// <param name="author">The author of the new Report. Automatically generated from Identity and the logged in User.</param>
        /// <param name="imgUrl">The URL for the report's image, which appears on the report's card.</param>
        /// <param name="industry">The Industry under which the new Report will be classified. Has to match an existing Industry in the context.</param>
        /// <param name="tags">The Tags to be added to the new Report. If a tag does not exist, it will be created automatically.</param>
        /// <returns>On success - A Report Model, mapped from the new Report. If the Report already exists - Throws Argument Exception</returns>
        public async Task <ReportModel> CreateReport(string title, string summary, string description, string author, string imgUrl, string industry, string tags)
        {
            var reportModel = ReportMapper.MapModelFromInput(title, summary, description, imgUrl, author, industry, tags);

            // Throw if Report with this title exists.
            if (await _context.Reports
                .Include(r => r.Author)
                .Include(r => r.Industry)
                .Include(r => r.ReportTags)
                .AnyAsync(r => r.Title == title))
            {
                throw new ArgumentException($"Report with title {title} already exists.");
            }

            //Create Report
            var report = new Report()
            {
                Title       = reportModel.Title,
                Description = reportModel.Description,
                Summary     = reportModel.Summary,
                ImgUrl      = reportModel.ImgUrl,
                CreatedOn   = DateTime.UtcNow
            };
            await _context.Reports.AddAsync(report);

            //Map Author, Industry, set Pending
            report.AuthorId   = _context.Users.FirstOrDefault(u => u.NormalizedEmail == reportModel.Author.ToUpper()).Id;
            report.IndustryId = _context.Industries.FirstOrDefault(i => i.Name.ToUpper() == reportModel.Industry.ToUpper()).Id;
            report.IsPending  = true;
            await _context.SaveChangesAsync();

            //Map Tags, Create new Tags if any do not exist.
            await AddTagsToReport(report, reportModel.Tags);

            await _context.SaveChangesAsync();

            //Return Report Model
            reportModel = ReportMapper.MapModelFromEntity(report);
            return(reportModel);
        }
示例#22
0
        public async Task <IActionResult> UpdateAsync([FromRoute] int id, [FromBody] InReportDTO reportDTO)
        {
            var report = await _repositoryManager.ReportRepository.GetAsync(id);

            if (report == null)
            {
                return(NotFound());
            }

            if (report.Locked)
            {
                return(Forbid());
            }

            report.Update(reportDTO);

            await _repositoryManager.SaveAsync();

            report = await _repositoryManager.ReportRepository.GetAsync(id);

            return(Ok(ReportMapper.CompleteMap(report)));
        }
示例#23
0
        private IActionResult ListReportsPublished(Event @event)
        {
            var reports = @event.EventReports.Where(er => er.Report.State == Models.EntityState.Published).Select(r => ReportMapper.Map(r.Report)).ToList();

            return(Ok(reports));
        }
示例#24
0
        private IActionResult ListReportsUndeletedAsync(Event @event)
        {
            var reports = @event.EventReports.Where(er => er.Report.State != Models.EntityState.Deleted).Select(r => ReportMapper.Map(r.Report)).ToList();

            return(Ok(reports));
        }
示例#25
0
 public ReportCrudFactory()
 {
     _mapper = new ReportMapper();
     dao     = SqlDao.GetInstance();
 }
示例#26
0
        public void ReportEntityToDomainTest()
        {
            //Arrange
            var dateTime = new DateTime(664245234232223465);

            var reportEntity = new StandardReportV3Entity()
            {
                Tick                           = "35467568756658785",
                Interval                       = "interval",
                AllRegistrations               = 12,
                CicIPadDeletions               = 23,
                CicIPadRegistrations           = 34,
                CicIPadSuccessfulUploads       = 45,
                CicIPadUploadCancels           = 445,
                CicMacDeletions                = 56,
                CicMacRegistrations            = 67,
                CicMacSuccessfulUploads        = 78,
                CicMacUploadCancels            = 778,
                CicPcDeletions                 = 89,
                CicPcRegistrations             = 90,
                CicPcSuccessfulUploads         = 123,
                CicPcUploadCancels             = 1123,
                EmailRegistrations             = 234,
                EmbeddedViews                  = 345,
                FacebookRegistrations          = 456,
                GoogleRegistrations            = 567,
                TaggerIPhoneDeletions          = 678,
                TaggerIPhoneRegistrations      = 789,
                TaggerIPhoneSuccessfulUploads  = 890,
                TaggerIPhoneUploadCancels      = 990,
                TotalViews                     = 901,
                WindowsLiveRegistrations       = 1234,
                YahooRegistrations             = 2345,
                ImageShackDeletions            = 11,
                ImageShackRegistrations        = 22,
                ImageShackSuccessfulUploads    = 33,
                ImageShackUploadCancels        = 44,
                TwitterRegistrations           = 111,
                BrowserRegistrations           = 112,
                OtherRegistrations             = 113,
                PlayerDeletions                = 114,
                PlayerRegistrations            = 115,
                PlayerSuccessfulUploads        = 116,
                PlayerUploadCancels            = 117,
                StandaloneDeletions            = 118,
                StandaloneRegistrations        = 119,
                StandaloneSuccessfulUploads    = 221,
                StandaloneUploadCancels        = 223,
                TaggerAndroidDeletions         = 224,
                TaggerAndroidRegistrations     = 225,
                TaggerAndroidSuccessfulUploads = 226,
                TaggerAndroidUploadCancels     = 227,
                DailyMotionDeletions           = 228,
                DailyMotionRegistrations       = 229,
                DailyMotionSuccessfulUploads   = 331,
                DailyMotionUploadCancels       = 332,
                VkRegistrations                = 333,
                JwPlayerDeletions              = 334,
                JwPlayerRegistrations          = 335,
                JwPlayerSuccessfulUploads      = 336,
                JwPlayerUploadCancels          = 337,
                OdnoklassnikiRegistrations     = 448
            };

            _tableValueConverter.Setup(m => m.TickToDateTime(reportEntity.Tick)).Returns(dateTime);

            var mapper = new ReportMapper(_tableValueConverter.Object);

            //Act
            var domainReport = mapper.ReportEntityToDomain(reportEntity);

            //Assert
            Assert.AreEqual(dateTime, domainReport.Tick);
            Assert.AreEqual(reportEntity.Interval, domainReport.Interval);
            Assert.AreEqual(reportEntity.AllRegistrations, domainReport.AllRegistrations);
            Assert.AreEqual(reportEntity.CicIPadDeletions, domainReport.CicIPadDeletions);
            Assert.AreEqual(reportEntity.CicIPadRegistrations, domainReport.CicIPadRegistrations);
            Assert.AreEqual(reportEntity.CicIPadSuccessfulUploads, domainReport.CicIPadSuccessfulUploads);
            Assert.AreEqual(reportEntity.CicIPadUploadCancels, domainReport.CicIPadUploadCancels);
            Assert.AreEqual(reportEntity.CicMacDeletions, domainReport.CicMacDeletions);
            Assert.AreEqual(reportEntity.CicMacRegistrations, domainReport.CicMacRegistrations);
            Assert.AreEqual(reportEntity.CicMacSuccessfulUploads, domainReport.CicMacSuccessfulUploads);
            Assert.AreEqual(reportEntity.CicMacUploadCancels, domainReport.CicMacUploadCancels);
            Assert.AreEqual(reportEntity.CicPcDeletions, domainReport.CicPcDeletions);
            Assert.AreEqual(reportEntity.CicPcRegistrations, domainReport.CicPcRegistrations);
            Assert.AreEqual(reportEntity.CicPcSuccessfulUploads, domainReport.CicPcSuccessfulUploads);
            Assert.AreEqual(reportEntity.CicPcUploadCancels, domainReport.CicPcUploadCancels);
            Assert.AreEqual(reportEntity.EmailRegistrations, domainReport.EmailRegistrations);
            Assert.AreEqual(reportEntity.EmbeddedViews, domainReport.EmbeddedViews);
            Assert.AreEqual(reportEntity.FacebookRegistrations, domainReport.FacebookRegistrations);
            Assert.AreEqual(reportEntity.GoogleRegistrations, domainReport.GoogleRegistrations);
            Assert.AreEqual(reportEntity.TaggerIPhoneDeletions, domainReport.TaggerIPhoneDeletions);
            Assert.AreEqual(reportEntity.TaggerIPhoneRegistrations, domainReport.TaggerIPhoneRegistrations);
            Assert.AreEqual(reportEntity.TaggerIPhoneSuccessfulUploads, domainReport.TaggerIPhoneUploads);
            Assert.AreEqual(reportEntity.TaggerIPhoneUploadCancels, domainReport.TaggerIPhoneUploadCancels);
            Assert.AreEqual(reportEntity.TotalViews, domainReport.TotalViews);
            Assert.AreEqual(reportEntity.WindowsLiveRegistrations, domainReport.WindowsLiveRegistrations);
            Assert.AreEqual(reportEntity.YahooRegistrations, domainReport.YahooRegistrations);
            Assert.AreEqual(reportEntity.ImageShackDeletions, domainReport.ImageShackDeletions);
            Assert.AreEqual(reportEntity.ImageShackRegistrations, domainReport.ImageShackRegistrations);
            Assert.AreEqual(reportEntity.ImageShackSuccessfulUploads, domainReport.ImageShackSuccessfulUploads);
            Assert.AreEqual(reportEntity.ImageShackUploadCancels, domainReport.ImageShackUploadCancels);
            Assert.AreEqual(reportEntity.TwitterRegistrations, domainReport.TwitterRegistrations);
            Assert.AreEqual(reportEntity.OdnoklassnikiRegistrations, domainReport.OdnoklassnikiRegistrations);

            Assert.AreEqual(reportEntity.BrowserRegistrations, domainReport.BrowserRegistrations);
            Assert.AreEqual(reportEntity.OtherRegistrations, domainReport.OtherRegistrations);
            Assert.AreEqual(reportEntity.TaggerAndroidDeletions, domainReport.TaggerAndroidDeletions);
            Assert.AreEqual(reportEntity.TaggerAndroidRegistrations, domainReport.TaggerAndroidRegistrations);
            Assert.AreEqual(reportEntity.TaggerAndroidSuccessfulUploads, domainReport.TaggerAndroidSuccessfulUploads);
            Assert.AreEqual(reportEntity.TaggerAndroidUploadCancels, domainReport.TaggerAndroidUploadCancels);
            Assert.AreEqual(reportEntity.StandaloneDeletions, domainReport.StandaloneDeletions);
            Assert.AreEqual(reportEntity.StandaloneRegistrations, domainReport.StandaloneRegistrations);
            Assert.AreEqual(reportEntity.StandaloneSuccessfulUploads, domainReport.StandaloneSuccessfulUploads);
            Assert.AreEqual(reportEntity.StandaloneUploadCancels, domainReport.StandaloneUploadCancels);
            Assert.AreEqual(reportEntity.PlayerDeletions, domainReport.PlayerDeletions);
            Assert.AreEqual(reportEntity.PlayerRegistrations, domainReport.PlayerRegistrations);
            Assert.AreEqual(reportEntity.PlayerSuccessfulUploads, domainReport.PlayerSuccessfulUploads);
            Assert.AreEqual(reportEntity.PlayerUploadCancels, domainReport.PlayerUploadCancels);
            Assert.AreEqual(reportEntity.DailyMotionDeletions, domainReport.DailyMotionDeletions);
            Assert.AreEqual(reportEntity.DailyMotionRegistrations, domainReport.DailyMotionRegistrations);
            Assert.AreEqual(reportEntity.DailyMotionSuccessfulUploads, domainReport.DailyMotionSuccessfulUploads);
            Assert.AreEqual(reportEntity.DailyMotionUploadCancels, domainReport.DailyMotionUploadCancels);
            Assert.AreEqual(reportEntity.VkRegistrations, domainReport.VkRegistrations);
            Assert.AreEqual(reportEntity.JwPlayerDeletions, domainReport.JwPlayerDeletions);
            Assert.AreEqual(reportEntity.JwPlayerRegistrations, domainReport.JwPlayerRegistrations);
            Assert.AreEqual(reportEntity.JwPlayerSuccessfulUploads, domainReport.JwPlayerSuccessfulUploads);
            Assert.AreEqual(reportEntity.JwPlayerUploadCancels, domainReport.JwPlayerUploadCancels);
        }
示例#27
0
        [HttpGet]   //GET /api/report
        public IActionResult GetAllReports()
        {
            List <ReportDto> result = new List <ReportDto>();

            App.Instance().ReportService.GetAllEntities().ToList().ForEach(report => result.Add(ReportMapper.ReportToReportDto(report)));
            return(Ok(result));
        }
示例#28
0
 public ReportController(AppDbContext dbContext, ReportMapper mapper)
 {
     DbContext = dbContext ?? throw new ArgumentNullException(nameof(dbContext));
     Mapper    = mapper ?? throw new ArgumentNullException(nameof(mapper));
 }
示例#29
0
        public void DomainReportToReportEntityTest()
        {
            //Arrange
            const string formatedDate = "formatedDate";

            var domainReport = new DomainReport()
            {
                Interval                       = "interval",
                AllRegistrations               = 12,
                CicIPadDeletions               = 23,
                CicIPadRegistrations           = 34,
                CicIPadSuccessfulUploads       = 45,
                CicIPadUploadCancels           = 445,
                CicMacDeletions                = 56,
                CicMacRegistrations            = 67,
                CicMacSuccessfulUploads        = 78,
                CicMacUploadCancels            = 778,
                CicPcDeletions                 = 89,
                CicPcRegistrations             = 90,
                CicPcSuccessfulUploads         = 123,
                CicPcUploadCancels             = 1123,
                EmailRegistrations             = 234,
                EmbeddedViews                  = 345,
                FacebookRegistrations          = 456,
                GoogleRegistrations            = 567,
                TaggerIPhoneDeletions          = 678,
                TaggerIPhoneRegistrations      = 789,
                TaggerIPhoneUploads            = 890,
                TaggerIPhoneUploadCancels      = 990,
                TotalViews                     = 901,
                WindowsLiveRegistrations       = 1234,
                YahooRegistrations             = 2345,
                ImageShackDeletions            = 11,
                ImageShackRegistrations        = 22,
                ImageShackSuccessfulUploads    = 33,
                ImageShackUploadCancels        = 44,
                TwitterRegistrations           = 111,
                BrowserRegistrations           = 112,
                OtherRegistrations             = 113,
                PlayerDeletions                = 114,
                PlayerRegistrations            = 115,
                PlayerSuccessfulUploads        = 116,
                PlayerUploadCancels            = 117,
                StandaloneDeletions            = 118,
                StandaloneRegistrations        = 119,
                StandaloneSuccessfulUploads    = 221,
                StandaloneUploadCancels        = 223,
                TaggerAndroidDeletions         = 224,
                TaggerAndroidRegistrations     = 225,
                TaggerAndroidSuccessfulUploads = 226,
                TaggerAndroidUploadCancels     = 227,
                DailyMotionDeletions           = 228,
                DailyMotionRegistrations       = 229,
                DailyMotionSuccessfulUploads   = 331,
                DailyMotionUploadCancels       = 332,
                VkRegistrations                = 333,
                JwPlayerDeletions              = 334,
                JwPlayerRegistrations          = 335,
                JwPlayerSuccessfulUploads      = 336,
                JwPlayerUploadCancels          = 337,
                OdnoklassnikiRegistrations     = 448
            };

            var mapper = new ReportMapper(_tableValueConverter.Object);

            //Act
            var reportEntity = mapper.DomainReportToEntity(domainReport, formatedDate);

            //Assert
            Assert.AreEqual(reportEntity.Tick, formatedDate);
            Assert.AreEqual(domainReport.Interval, reportEntity.Interval);
            Assert.AreEqual(domainReport.AllRegistrations, reportEntity.AllRegistrations);
            Assert.AreEqual(domainReport.CicIPadDeletions, reportEntity.CicIPadDeletions);
            Assert.AreEqual(domainReport.CicIPadRegistrations, reportEntity.CicIPadRegistrations);
            Assert.AreEqual(domainReport.CicIPadSuccessfulUploads, reportEntity.CicIPadSuccessfulUploads);
            Assert.AreEqual(domainReport.CicIPadUploadCancels, reportEntity.CicIPadUploadCancels);
            Assert.AreEqual(domainReport.CicMacDeletions, reportEntity.CicMacDeletions);
            Assert.AreEqual(domainReport.CicMacRegistrations, reportEntity.CicMacRegistrations);
            Assert.AreEqual(domainReport.CicMacSuccessfulUploads, reportEntity.CicMacSuccessfulUploads);
            Assert.AreEqual(domainReport.CicMacUploadCancels, reportEntity.CicMacUploadCancels);
            Assert.AreEqual(domainReport.CicPcDeletions, reportEntity.CicPcDeletions);
            Assert.AreEqual(domainReport.CicPcRegistrations, reportEntity.CicPcRegistrations);
            Assert.AreEqual(domainReport.CicPcSuccessfulUploads, reportEntity.CicPcSuccessfulUploads);
            Assert.AreEqual(domainReport.CicPcUploadCancels, reportEntity.CicPcUploadCancels);
            Assert.AreEqual(domainReport.EmailRegistrations, reportEntity.EmailRegistrations);
            Assert.AreEqual(domainReport.EmbeddedViews, reportEntity.EmbeddedViews);
            Assert.AreEqual(domainReport.FacebookRegistrations, reportEntity.FacebookRegistrations);
            Assert.AreEqual(domainReport.GoogleRegistrations, reportEntity.GoogleRegistrations);
            Assert.AreEqual(domainReport.TaggerIPhoneDeletions, reportEntity.TaggerIPhoneDeletions);
            Assert.AreEqual(domainReport.TaggerIPhoneRegistrations, reportEntity.TaggerIPhoneRegistrations);
            Assert.AreEqual(domainReport.TaggerIPhoneUploads, reportEntity.TaggerIPhoneSuccessfulUploads);
            Assert.AreEqual(domainReport.TaggerIPhoneUploadCancels, reportEntity.TaggerIPhoneUploadCancels);
            Assert.AreEqual(domainReport.TotalViews, reportEntity.TotalViews);
            Assert.AreEqual(domainReport.WindowsLiveRegistrations, reportEntity.WindowsLiveRegistrations);
            Assert.AreEqual(domainReport.YahooRegistrations, reportEntity.YahooRegistrations);
            Assert.AreEqual(domainReport.ImageShackDeletions, reportEntity.ImageShackDeletions);
            Assert.AreEqual(domainReport.ImageShackRegistrations, reportEntity.ImageShackRegistrations);
            Assert.AreEqual(domainReport.ImageShackSuccessfulUploads, reportEntity.ImageShackSuccessfulUploads);
            Assert.AreEqual(domainReport.ImageShackUploadCancels, reportEntity.ImageShackUploadCancels);
            Assert.AreEqual(domainReport.TwitterRegistrations, reportEntity.TwitterRegistrations);
            Assert.AreEqual(domainReport.OdnoklassnikiRegistrations, reportEntity.OdnoklassnikiRegistrations);

            Assert.AreEqual(domainReport.BrowserRegistrations, reportEntity.BrowserRegistrations);
            Assert.AreEqual(domainReport.OtherRegistrations, reportEntity.OtherRegistrations);
            Assert.AreEqual(domainReport.TaggerAndroidDeletions, reportEntity.TaggerAndroidDeletions);
            Assert.AreEqual(domainReport.TaggerAndroidRegistrations, reportEntity.TaggerAndroidRegistrations);
            Assert.AreEqual(domainReport.TaggerAndroidSuccessfulUploads, reportEntity.TaggerAndroidSuccessfulUploads);
            Assert.AreEqual(domainReport.TaggerAndroidUploadCancels, reportEntity.TaggerAndroidUploadCancels);
            Assert.AreEqual(domainReport.StandaloneDeletions, reportEntity.StandaloneDeletions);
            Assert.AreEqual(domainReport.StandaloneRegistrations, reportEntity.StandaloneRegistrations);
            Assert.AreEqual(domainReport.StandaloneSuccessfulUploads, reportEntity.StandaloneSuccessfulUploads);
            Assert.AreEqual(domainReport.StandaloneUploadCancels, reportEntity.StandaloneUploadCancels);
            Assert.AreEqual(domainReport.PlayerDeletions, reportEntity.PlayerDeletions);
            Assert.AreEqual(domainReport.PlayerRegistrations, reportEntity.PlayerRegistrations);
            Assert.AreEqual(domainReport.PlayerSuccessfulUploads, reportEntity.PlayerSuccessfulUploads);
            Assert.AreEqual(domainReport.PlayerUploadCancels, reportEntity.PlayerUploadCancels);
            Assert.AreEqual(domainReport.DailyMotionDeletions, reportEntity.DailyMotionDeletions);
            Assert.AreEqual(domainReport.DailyMotionRegistrations, reportEntity.DailyMotionRegistrations);
            Assert.AreEqual(domainReport.DailyMotionSuccessfulUploads, reportEntity.DailyMotionSuccessfulUploads);
            Assert.AreEqual(domainReport.DailyMotionUploadCancels, reportEntity.DailyMotionUploadCancels);
            Assert.AreEqual(domainReport.VkRegistrations, reportEntity.VkRegistrations);
            Assert.AreEqual(domainReport.JwPlayerDeletions, reportEntity.JwPlayerDeletions);
            Assert.AreEqual(domainReport.JwPlayerRegistrations, reportEntity.JwPlayerRegistrations);
            Assert.AreEqual(domainReport.JwPlayerSuccessfulUploads, reportEntity.JwPlayerSuccessfulUploads);
            Assert.AreEqual(domainReport.JwPlayerUploadCancels, reportEntity.JwPlayerUploadCancels);
        }
示例#30
0
        public void DomainReportToDtoTest()
        {
            //Arrange
            var startDate = new DateTime(21341222);
            var endDate   = new DateTime(4352435234);
            var interval  = new Interval()
            {
                Finish = endDate, Start = startDate
            };
            var domainReport = new DomainReport()
            {
                Interval                       = "interval",
                AllRegistrations               = 12,
                CicIPadDeletions               = 23,
                CicIPadRegistrations           = 34,
                CicIPadSuccessfulUploads       = 45,
                CicIPadUploadCancels           = 445,
                CicMacDeletions                = 56,
                CicMacRegistrations            = 67,
                CicMacSuccessfulUploads        = 78,
                CicMacUploadCancels            = 778,
                CicPcDeletions                 = 89,
                CicPcRegistrations             = 90,
                CicPcSuccessfulUploads         = 123,
                CicPcUploadCancels             = 1123,
                EmailRegistrations             = 234,
                EmbeddedViews                  = 345,
                FacebookRegistrations          = 456,
                GoogleRegistrations            = 567,
                TaggerIPhoneDeletions          = 678,
                TaggerIPhoneRegistrations      = 789,
                TaggerIPhoneUploads            = 890,
                TaggerIPhoneUploadCancels      = 990,
                TotalViews                     = 901,
                WindowsLiveRegistrations       = 1234,
                YahooRegistrations             = 2345,
                ImageShackDeletions            = 11,
                ImageShackRegistrations        = 22,
                ImageShackSuccessfulUploads    = 33,
                ImageShackUploadCancels        = 44,
                TwitterRegistrations           = 111,
                BrowserRegistrations           = 112,
                OtherRegistrations             = 113,
                PlayerDeletions                = 114,
                PlayerRegistrations            = 115,
                PlayerSuccessfulUploads        = 116,
                PlayerUploadCancels            = 117,
                StandaloneDeletions            = 118,
                StandaloneRegistrations        = 119,
                StandaloneSuccessfulUploads    = 221,
                StandaloneUploadCancels        = 223,
                TaggerAndroidDeletions         = 224,
                TaggerAndroidRegistrations     = 225,
                TaggerAndroidSuccessfulUploads = 226,
                TaggerAndroidUploadCancels     = 227,
                DailyMotionDeletions           = 228,
                DailyMotionRegistrations       = 229,
                DailyMotionSuccessfulUploads   = 331,
                DailyMotionUploadCancels       = 332,
                VkRegistrations                = 333,
                JwPlayerDeletions              = 334,
                JwPlayerRegistrations          = 335,
                JwPlayerSuccessfulUploads      = 336,
                JwPlayerUploadCancels          = 447,
                OdnoklassnikiRegistrations     = 448
            };

            var mapper = new ReportMapper(_tableValueConverter.Object);

            //Act
            var report = mapper.DomainReportToDto(domainReport, interval);

            //Assert
            Assert.AreEqual(startDate, report.Interval.Start);
            Assert.AreEqual(endDate.Subtract(TimeSpan.FromTicks(1)), report.Interval.End);
            Assert.AreEqual(domainReport.AllRegistrations, report.AllRegistrations);
            Assert.AreEqual(domainReport.CicIPadDeletions, report.CicIPadDeletions);
            Assert.AreEqual(domainReport.CicIPadRegistrations, report.CicIPadRegistrations);
            Assert.AreEqual(domainReport.CicIPadSuccessfulUploads, report.CicIPadSuccessfulUploads);
            Assert.AreEqual(domainReport.CicIPadUploadCancels, report.CicIPadUploadCancels);
            Assert.AreEqual(domainReport.CicMacDeletions, report.CicMacDeletions);
            Assert.AreEqual(domainReport.CicMacRegistrations, report.CicMacRegistrations);
            Assert.AreEqual(domainReport.CicMacSuccessfulUploads, report.CicMacSuccessfulUploads);
            Assert.AreEqual(domainReport.CicMacUploadCancels, report.CicMacUploadCancels);
            Assert.AreEqual(domainReport.CicPcDeletions, report.CicPcDeletions);
            Assert.AreEqual(domainReport.CicPcRegistrations, report.CicPcRegistrations);
            Assert.AreEqual(domainReport.CicPcSuccessfulUploads, report.CicPcSuccessfulUploads);
            Assert.AreEqual(domainReport.CicPcUploadCancels, report.CicPcUploadCancels);
            Assert.AreEqual(domainReport.EmailRegistrations, report.EmailRegistrations);
            Assert.AreEqual(domainReport.EmbeddedViews, report.EmbeddedViews);
            Assert.AreEqual(domainReport.FacebookRegistrations, report.FacebookRegistrations);
            Assert.AreEqual(domainReport.GoogleRegistrations, report.GoogleRegistrations);
            Assert.AreEqual(domainReport.TaggerIPhoneDeletions, report.TaggerIPhoneDeletions);
            Assert.AreEqual(domainReport.TaggerIPhoneRegistrations, report.TaggerIPhoneRegistrations);
            Assert.AreEqual(domainReport.TaggerIPhoneUploads, report.TaggerIPhoneSuccessfulUploads);
            Assert.AreEqual(domainReport.TaggerIPhoneUploadCancels, report.TaggerIPhoneUploadCancels);
            Assert.AreEqual(domainReport.TotalViews, report.TotalViews);
            Assert.AreEqual(domainReport.WindowsLiveRegistrations, report.WindowsLiveRegistrations);
            Assert.AreEqual(domainReport.YahooRegistrations, report.YahooRegistrations);
            Assert.AreEqual(domainReport.ImageShackDeletions, report.ImageShackDeletions);
            Assert.AreEqual(domainReport.ImageShackRegistrations, report.ImageShackRegistrations);
            Assert.AreEqual(domainReport.ImageShackSuccessfulUploads, report.ImageShackSuccessfulUploads);
            Assert.AreEqual(domainReport.ImageShackUploadCancels, report.ImageShackUploadCancels);
            Assert.AreEqual(domainReport.TwitterRegistrations, report.TwitterRegistrations);
            Assert.AreEqual(domainReport.OdnoklassnikiRegistrations, report.OdnoklassnikiRegistrations);

            Assert.AreEqual(domainReport.BrowserRegistrations, report.BrowserRegistrations);
            Assert.AreEqual(domainReport.OtherRegistrations, report.OtherRegistrations);
            Assert.AreEqual(domainReport.TaggerAndroidDeletions, report.TaggerAndroidDeletions);
            Assert.AreEqual(domainReport.TaggerAndroidRegistrations, report.TaggerAndroidRegistrations);
            Assert.AreEqual(domainReport.TaggerAndroidSuccessfulUploads, report.TaggerAndroidSuccessfulUploads);
            Assert.AreEqual(domainReport.TaggerAndroidUploadCancels, report.TaggerAndroidUploadCancels);
            Assert.AreEqual(domainReport.StandaloneDeletions, report.StandaloneDeletions);
            Assert.AreEqual(domainReport.StandaloneRegistrations, report.StandaloneRegistrations);
            Assert.AreEqual(domainReport.StandaloneSuccessfulUploads, report.StandaloneSuccessfulUploads);
            Assert.AreEqual(domainReport.StandaloneUploadCancels, report.StandaloneUploadCancels);
            Assert.AreEqual(domainReport.PlayerDeletions, report.PlayerDeletions);
            Assert.AreEqual(domainReport.PlayerRegistrations, report.PlayerRegistrations);
            Assert.AreEqual(domainReport.PlayerSuccessfulUploads, report.PlayerSuccessfulUploads);
            Assert.AreEqual(domainReport.PlayerUploadCancels, report.PlayerUploadCancels);
            Assert.AreEqual(domainReport.DailyMotionDeletions, report.DailyMotionDeletions);
            Assert.AreEqual(domainReport.DailyMotionRegistrations, report.DailyMotionRegistrations);
            Assert.AreEqual(domainReport.DailyMotionSuccessfulUploads, report.DailyMotionSuccessfulUploads);
            Assert.AreEqual(domainReport.DailyMotionUploadCancels, report.DailyMotionUploadCancels);
            Assert.AreEqual(domainReport.VkRegistrations, report.VkRegistrations);
            Assert.AreEqual(domainReport.JwPlayerDeletions, report.JwPlayerDeletions);
            Assert.AreEqual(domainReport.JwPlayerRegistrations, report.JwPlayerRegistrations);
            Assert.AreEqual(domainReport.JwPlayerSuccessfulUploads, report.JwPlayerSuccessfulUpload);
            Assert.AreEqual(domainReport.JwPlayerUploadCancels, report.JwPlayerUploadCancels);
        }