23.05.02 Day65

오윤범·2023년 5월 2일
0
post-custom-banner

SCADA 시뮬레이션(스마트 홈)

개발 환경 Set

1) MahApps.Metro(누겟 패키지) 설치
2) MahApps.Metro.Icon(누겟 패키지) 설치
3) Newtonsoft.json(누겟 패키지) 설치
4) Bogus(누겟 패키지) 설치

SampleCustomerRepository.cs

Bogus를 활용하여 10개의 고객 더미 데이터 생성 (Bogus 사용하지 않을 시 엄청난 양의 코딩을 해야하는 불편함이 있음)

using Bogus;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BogusTestApp.Models
{
    public class SampleCustomerRepository
    {
        public IEnumerable<Customer> GetCustomers()
        {
            Randomizer.Seed = new Random(123456);//Seed 갯수 지정
            //orderGen을 다음과 같은 규칙으로 생성(더미데이터)
            // 주문 더미데이터 생성 규칙
            var orderGen = new Faker<Order>()
                .RuleFor(o => o.Id, Guid.NewGuid) // ID 값은 GUID로 자동생성
                .RuleFor(o => o.Date, f => f.Date.Past(3)) //날짜 3년전으로 셋팅
                .RuleFor(o => o.OrderValue, f => f.Finance.Amount(0, 10000))//1~10000 랜덤하게 셋팅
                .RuleFor(o => o.Shipped, f => f.Random.Bool(0.8f));//0.5f라면 true,false가 5대5로 셋팅
            //고객 더미데이터 생성 규칙
            var customerGen = new Faker<Customer>()
                .RuleFor(c => c.Id, Guid.NewGuid())
                .RuleFor(c => c.Name, f => f.Company.CompanyName())
                .RuleFor(c => c.Address, f => f.Address.FullAddress())
                .RuleFor(c => c.Phone, f => f.Phone.PhoneNumber())
                .RuleFor(c => c.ContactName, (f, c) => f.Name.FullName())
                .RuleFor(c => c.Orders, f => orderGen.Generate(f.Random.Number(1, 2)).ToList());

            return customerGen.Generate(10);//고객 더미데이터 10개 생성
        }
    }
}
post-custom-banner

0개의 댓글