예제 #1
0
        public async Task <IActionResult> Post(string id, [FromBody] FA4 value)
        {
            var role = await base.GetRoleInGroup(value.ExpertGroup);

            try
            {
                if (role.Skriver)
                {
                    await StoreAssessment(int.Parse(id), value, role.User, false);
                }
                else
                {
                    throw new Exception("IKKE SKRIVETILGANG TIL DENNE VURDERINGEN");
                }
            }
            catch (Exception e)
            {
                return(Unauthorized(e.Message));
            }



            await this.SendMessage("assessment", "save");



            return(Ok());
        }
예제 #2
0
    public void FA4b()
    {
        Question.GetComponent <Text>().text += "\n\nФин: " + FA4.GetComponentInChildren <Text>().text;
        Question.GetComponent <Text>().text += "\n\nИзвини, но в этот раз ты не прав. Ты смог дать мне верный ответ в первый раз, за это я дам тебе " +
                                               "одну подсказку: тебе туда, о чём была первая загадка. А вот что тебя там ждёт - ты не узнаешь.";

        TA2.gameObject.SetActive(false);
        FA3.gameObject.SetActive(false);
        FA4.gameObject.SetActive(false);
        EA3.gameObject.SetActive(true);


        EA3.GetComponentInChildren <Text>().text = "Благодарю тебя и за это.";
    }
예제 #3
0
    public void TA1b()
    {
        Question.GetComponent <Text>().text += "\n\nФин: " + TA1.GetComponentInChildren <Text>().text;
        Question.GetComponent <Text>().text += "\n\nХорошо, ты молодец. Теперь настало время для второй загадки: зимой и летом одним цветом." +
                                               " Подумай внимательно.";

        TA1.gameObject.SetActive(false);
        FA1.gameObject.SetActive(false);
        FA2.gameObject.SetActive(false);
        TA2.gameObject.SetActive(true);
        FA3.gameObject.SetActive(true);
        FA4.gameObject.SetActive(true);


        TA2.GetComponentInChildren <Text>().text = "Ну, это может быть зомби.";
        FA3.GetComponentInChildren <Text>().text = "Какие то детские у тебя загадки, старик. Все знают, что это ёлка!";
        FA4.GetComponentInChildren <Text>().text = "Деньги.";
    }
예제 #4
0
        //private async Task StoreAssessment(int id, FA4 doc, User user, bool notUpdateChangedBy, bool forceStore = false)
        //{
        //    //var dateTimeFormat = "yyyy-MM-dd HH:mm:ss";
        //    var now = DateTime.Now;
        //    doc.LastUpdatedAt = now;

        //    var assessment = _dbContext.Assessments.SingleOrDefault(x => x.Id == id);

        //    if (!forceStore && (assessment.LockedForEditBy != null && assessment.LockedForEditBy != user.Brukernavn))
        //    {
        //        throw new Exception("IKKE SKRIVETILGANG TIL DENNE VURDERINGEN - Låst av annen bruker");
        //    }


        //    // check and update referenceUsages
        //    var usedReferences = doc.References.Select(x => x.ReferenceId).ToArray();
        //    if (!forceStore && usedReferences.Any())
        //    {
        //        bool ok = await _referenceService.SignalUsage(usedReferences, user.Id);
        //    }

        //    var curAss = JsonConvert.DeserializeObject<FA4>(assessment.Doc);

        //    byte[] zipfile;
        //    var fileName = "ArtskartData.zip";
        //    const string name = "Datagrunnlag fra Artskart";
        //    const string filetype = "application/zip";

        //    if (!forceStore && doc.ArtskartSistOverført != curAss.ArtskartSistOverført)
        //    {
        //        try
        //        {
        //            zipfile = await TaskHelper.TimeoutAfter(GetZipDataFromArtskart(doc), TimeSpan.FromSeconds(10));
        //        }
        //        catch
        //        {
        //            // ok here
        //            zipfile = Array.Empty<byte>();
        //        }

        //        if (zipfile.Length > 0)
        //        {
        //            var attach = await _dbContext.Attachments.Where(x =>
        //                x.AssessmentId == assessment.Id && x.Name == name && x.Type == filetype &&
        //                x.FileName == fileName).FirstOrDefaultAsync();
        //            if (attach != null)
        //            {
        //                attach.File = zipfile;
        //                attach.IsDeleted = false;
        //                attach.Date = DateTime.Now;
        //                attach.UserId = user.Id;
        //            }
        //            else
        //            {
        //                attach = new Attachment
        //                {
        //                    AssessmentId = assessment.Id,
        //                    Date = DateTime.Now,
        //                    File = zipfile,
        //                    FileName = fileName,
        //                    Name = name,
        //                    Type = filetype,
        //                    UserId = user.Id
        //                };
        //                _dbContext.Attachments.Add(attach);
        //            }
        //        }

        //    }

        //    var history = new AssessmentHistory()
        //    {
        //        Id = assessment.Id,
        //        Doc = assessment.Doc,
        //        HistoryAt = now
        //    };

        //    _dbContext.AssessmentHistories.Add(history);

        //    if (!notUpdateChangedBy)
        //    {
        //        doc.EvaluationStatus = "inprogress";
        //        doc.LastUpdatedOn = now;
        //        doc.LastUpdatedBy = user.Brukernavn;
        //    }

        //    var assessmentString = Newtonsoft.Json.JsonConvert.SerializeObject(doc);
        //    assessment.Doc = assessmentString;
        //    await _dbContext.SaveChangesAsync().ConfigureAwait(false);

        //}
        //private static async Task<byte[]> GetZipDataFromArtskart(FA4 rlRodliste2019)
        //{
        //    // hent datasett fra artskart
        //    var date = DateTime.Parse(rlRodliste2019.ArtskartSistOverført);
        //    var kriterier = rlRodliste2019.ArtskartModel;

        //    var apibase =
        //        "https://artskart.artsdatabanken.no/PublicApi/api/listhelper/";
        //    var type =
        //        kriterier.IncludeObjects == kriterier.IncludeObservations
        //            ? "all"
        //            : kriterier.IncludeObjects
        //                ? "specimen"
        //                : "observations";
        //    var region =
        //        kriterier.IncludeNorge == kriterier.IncludeSvalbard
        //            ? "all"
        //            : kriterier.IncludeNorge
        //                ? "fastland"
        //                : "svalbard";
        //    var excludeGbif =
        //    kriterier.ExcludeGbif ? "&sourcedatabases[]=-40,-211" : "";
        //    var queryparams =
        //        $"&fromYear={kriterier.ObservationFromYear}&toYear={kriterier.ObservationToYear}&fromMonth={kriterier.FromMonth}&toMonth={kriterier.ToMonth}&type={type}&region={region}{excludeGbif}";
        //    queryparams += $"&scientificNameId={rlRodliste2019.VurdertVitenskapeligNavnId}";

        //    if (!string.IsNullOrWhiteSpace(rlRodliste2019.ArtskartSelectionGeometry))
        //    {
        //        queryparams += $"&geojsonPolygon=";
        //        dynamic json = JsonConvert.DeserializeObject(rlRodliste2019.ArtskartSelectionGeometry);
        //        dynamic coordinates = json.geometry.coordinates;
        //        dynamic items = coordinates[0];
        //        foreach (dynamic item in items)
        //        {
        //            foreach (dynamic o in item)
        //            {
        //                string s = o.ToString();
        //                queryparams += s.Replace(",", ".") + ",";
        //            }
        //        }

        //        queryparams = queryparams.Substring(0, queryparams.Length - 1);
        //    }

        //    if (!string.IsNullOrWhiteSpace(rlRodliste2019.ArtskartAdded))
        //    {
        //        queryparams += $"&addPoints={rlRodliste2019.ArtskartAdded}";
        //    }

        //    if (!string.IsNullOrWhiteSpace(rlRodliste2019.ArtskartRemoved))
        //    {
        //        queryparams += $"&removePoints={rlRodliste2019.ArtskartRemoved}";
        //    }

        //    var urlen = apibase + rlRodliste2019.TaxonId + "/downloadObservations/?" + queryparams;
        //    using var client = new HttpClient();

        //    var zipfile = await client.GetByteArrayAsync(urlen);
        //    return zipfile ;
        //}

        private static FA4 CreateNewAssessment(string expertgroup, string userName, int scientificNameId)
        {
            if (string.IsNullOrWhiteSpace(expertgroup))
            {
                throw new ArgumentNullException(nameof(expertgroup));
            }
            if (string.IsNullOrWhiteSpace(userName))
            {
                throw new ArgumentNullException(nameof(userName));
            }
            var vurderingscontext = expertgroup.Contains("Svalbard") ? "S" : "N";
            var vurderingsår      = 2021;
            var createdby         = "createdbyloading";

            var ts     = new Prod.Api.Services.TaxonService();
            var titask = ts.GetTaxonInfoAsync(scientificNameId);
            var ti     = titask.GetAwaiter().GetResult();

            var(hierarcy, rank) = TaxonService.GetFullPathScientificName(ti);


            if (scientificNameId != ti.ValidScientificNameId)
            {
                throw new ArgumentException("supplied scientificNameId is not ValidScientificNameId");
            }

            var rl = new FA4();

            //rl.Ekspertgruppe = expertgroup;
            //rl.VurderingsContext = vurderingscontext;
            //rl.Slettet = false;
            //rl.LastUpdatedOn = DateTime.Now;
            //rl.LastUpdatedBy = userName;
            //rl.Vurderingsår = vurderingsår;
            //rl.SistVurdertAr = vurderingsår;
            //rl.EvaluationStatus = createdby;
            //rl.OverordnetKlassifiseringGruppeKode = "rodlisteVurdertArt";
            //rl.RodlisteVurdertArt = "etablertBestandINorge";
            //rl.VurdertVitenskapeligNavn = ti.ValidScientificName;
            //rl.VurdertVitenskapeligNavnId = ti.ValidScientificNameId;
            //rl.VurdertVitenskapeligNavnAutor = ti.ValidScientificNameAuthorship;
            //rl.VurdertVitenskapeligNavnHierarki = hierarcy;
            //rl.TaxonId = ti.TaxonId;
            //rl.TaxonRank = rank;
            //rl.PopularName = ti.PrefferedPopularname;

            ////ekstra standardverdier
            //rl.ImportInfo.VurderingsId2015 = string.Empty;
            //rl.AndelNåværendeBestand = "-";
            //rl.A1OpphørtOgReversibel = "-";
            //rl.A2Forutgående10År = "-";
            //rl.A3Kommende10År = "-";
            //rl.A4Intervall10År = "-";
            //rl.BA2FåLokaliteterProdukt = "";
            //rl.B1BeregnetAreal = "";
            //rl.B1UtbredelsesområdeKode = "-";
            //rl.B2ForekomstarealKode = "-";
            //rl.BA1KraftigFragmenteringKode = "-";
            //rl.BA2FåLokaliteterKode = "-";
            //rl.CVurdertpopulasjonsstørrelseProdukt = "";
            //rl.C1PågåendePopulasjonsreduksjonKode = "-";
            //rl.C2A1PågåendePopulasjonsreduksjonKode = "-";
            //rl.D1FåReproduserendeIndividKode = "-";
            //rl.D2MegetBegrensetForekomstarealKode = "-";
            //rl.EKvantitativUtryddingsmodellKode = "-";

            ////gudene vet om disse har betydning:
            //rl.WktPolygon = "";
            //rl.SistVurdertAr = 2021;
            //rl.C2A2PågåendePopulasjonsreduksjonKode = "-";
            //rl.C2BPågåendePopulasjonsreduksjonKode = "-";
            //rl.CPopulasjonsstørrelseKode = "-";
            //rl.B2ForekomstarealProdukt = "";
            //rl.B1UtbredelsesområdeProdukt = "";
            //rl.OppsummeringAKriterier = "";
            //rl.OppsummeringBKriterier = "";
            //rl.OppsummeringCKriterier = "";
            //rl.OppsummeringDKriterier = "";
            //rl.OppsummeringEKriterier = "";
            //rl.B2BeregnetAreal = "";
            //if (rl.Ekspertgruppe == "Leddormer") // special case - ville ha LC som standard
            //{
            //    rl.C2A2SannhetsverdiKode = "1";
            //    rl.OverordnetKlassifiseringGruppeKode = "sikkerBestandLC";
            //    rl.Kategori = "LC";
            //}

            //AddFylkeslister(rl);
            //rl.NaturtypeHovedenhet = new List<string>();
            //SetArtskartImportSettings(rl);
            return(rl);
        }
예제 #5
0
 private async Task StoreAssessment(int id, FA4 doc, User user, bool notUpdateChangedBy, bool forceStore = false)
 {
     //todo: implement. see below
 }